2016-01-13 83 views
1

我使用带有状态的数组,但我不确定为什么我可以使用数组但不能设置。我有:使用数组反应本机状态

 getInitialState: function() { 
    return { 
     stored: {'ok':1,'maybe':1,'then':1} 
    }; 
    }, 

我可以得到数组项类似这样没有问题:

 <Text style={styles.text}> 
      {this.state.stored['ok']==1 ? "yes" : ""} 
     </Text> 

但奇怪的是试图设置状态不允许引用数组项,并抛出一个错误:

this.setState({stored['ok']: 1}); 
+0

这里还在寻找答案 - 任何人? – Hasen

回答

1

我认为它会起作用,如果你会用新的替换整个散列。

尝试这样:

var newHash = this.state.stored; 
newHash['ok'] = 1; 
this.setState({ stored: newHash }); 

但是,这将是最好不要存储在散列状态。

+0

是的,工作,谢谢。为什么它不按照我做到的方式工作?看起来很奇怪,必须这样做。 – Hasen

+0

一个对象的键不会是一个数组 – siwymilek

+0

但是它在初始化时以及在检索时都可以用作数组。唯一不是在设置它时。 – Hasen