2017-07-20 67 views
0

我想保存切换按钮状态,以便用户不能投票两次。 我有一个消息错误:异常' - [NSDictionaryM长度...在目标AsyncLocalStorage上调用multiSet时引发任何想法?AsyncStorage使用React Native保存状态

this.state= { 
trueSwitchIsOn: false, 
}; 

onSwitchChange(_key){ 
const{trueSwitchIsOn}=this.state; 

      switch (this.state.trueSwitchIsOn){ 
      case false: 
       return(
       <TouchableHighlight onClick={this.onPressIcon(_key)}> 
       {this.setState({trueSwitchIsOn: true})} 
       </TouchableHighlight> 
       ); 
      case true: 
       return(
       <TouchableHighlight onClick={this.onUnPressIcon(_key)}> 
       {this.setState({trueSwitchIsOn: false})} 
       </TouchableHighlight> 
       ); 
       } 
      } 

onPressIcon(word){ 
      AsyncStorage.setItem('AlreadyLiked', {trueSwitchIsOn}); 
      const{trueSwitchIsOn}=this.state; 
      this.setState({trueSwitchIsOn : true}); 
} 
onUnPressIcon(word){ 
      AsyncStorage.setItem('NotAlreadyLiked', {trueSwitchIsOn: false}); 
      const{trueSwitchIsOn}=this.state; 
      this.setState({trueSwitchIsOn : false}); 
<Switch> 
     onValueChange={(value)=>this.onSwitchChange(_key)} 
</Switch> 

回答

3

传递给AsyncStorage.setItem()的值必须是字符串。您需要将对象传递到JSON.stringify()或者只使用纯字符串值而不是具有“trueSwitchIsOn”布尔属性的对象。

相关问题