【问题标题】:AsyncStorage to save state with React NativeAsyncStorage 使用 React Native 保存状态
【发布时间】:2017-07-20 13:05:54
【问题描述】:

我想保存开关按钮的状态,这样用户就不能投票两次。 我有一条消息错误:异常'-[NSDictionaryM 长度...在目标 AsyncLocalStorage 上调用 multiSet 时抛出任何想法?

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>

【问题讨论】:

    标签: firebase react-native firebase-realtime-database state asyncstorage


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2017-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多