2017-07-20 107 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」布爾屬性的對象。

相關問題