我很反应原生,所以不确定是什么微妙导致我的价值不被分配。
class Example extends React.Component {
componentDidMount() {
// If you need to load data from a remote endpoint place the action call here, like so:
// this.props.createUrl('your-url');
}
render() {
return (
<div>
<div>URL injected from the store, automatically refreshed on change: {this.props.url}</div>
<div onClick={event => {this.props.createUrl('your-url');}}>Click me to fetch URL</div>
</div>
)
}
}
export default connect(mapStateToProps, mapDispatchToProps)(Example)
印刷
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)
我仍然可以打印上一个值(&#34; 1&#34;)
react-native:0.49.3
编辑: 我在创建对象时添加了以下行,现在可以分配变量了。我想反应不会完全复制对象,我假设只是一个参考,也不能分配?在很多情况下,我可以分配新对象并修改值而无需执行此类硬分配,因此不确定实际问题,但如果有人遇到此问题,这是一个解决方案。
thisMinor[key] = "2017";
答案 0 :(得分:0)
事实上,这是一个JavaScript问题,不完全是React Native。下次你可以问正确的标签时这么说。
案例是您的thisYear
变量返回字符串2017
。我猜您的key
索引正在返回2
,所以当您尝试访问thisYear[key]
时,实际上您将返回字符串的索引2,其值为1
'2' = 0
'0' = 1
'1' = 2
'7' = 3
希望有所帮助