我对原生的反应相当新,所以不确定是什么微妙导致我的价值不被分配。
console.log("NEW VALUE", this.props.appConfig.forms["reg1"].lists[refKey].list[thisMinor[key]]);
let thisYear = this.props.appConfig.forms["reg1"].lists[refKey].list[thisMinor[key]];
console.log("thisYear", thisYear);
thisMinor[key] = thisYear;
console.log("thisMinor[key]", thisMinor[key]);
印花
NEW VALUE, "2017"
thisYear, "2017"
thisMinor[key], "1" (what I would expect to be the previous value)
即使我将分配更改为硬编码
thisMinor[key] = "2017";
我仍然打印上一个值(“1”)
反应原生:0.49.3
编辑:我在创建对象时添加了以下行,现在我可以分配变量。我想反应不会完全复制对象,我假设只是一个引用,也不能分配?在很多情况下,我能够分配新对象并修改值而无需执行此分配,因此不确定实际问题,但如果有人遇到此问题,这是一个解决方案。
let thisMinor = {};
thisMinor = Object.assign(thisMinor, regMinors[i]);
事实上,这是一个JavaScript问题,不完全是React Native。下次你可以问正确的标签时这么说。
案例是你的thisYear
变量返回一个字符串2017
。我猜你的key
索引正在返回2
,所以当你试图访问thisYear[key]
实际上你正在返回字符串的索引2,其值为1
'2' = 0
'0' = 1
'1' = 2
'7' = 3
希望能帮助到你