使用 React Native 保存状态的 AsyncStorage
AsyncStorage to save state with React Native
我想保存切换按钮的状态,这样用户就不能投票两次。
我有一条消息错误:Exception '-[NSDictionaryM length...was throwed while invoking multiSet on target AsyncLocalStorage Any Idea ?
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>
传递给AsyncStorage.setItem()
的值需要是一个字符串。您需要将对象传递给 JSON.stringify()
或只使用纯字符串值而不是具有 "trueSwitchIsOn" 布尔值 属性.
的对象
我想保存切换按钮的状态,这样用户就不能投票两次。 我有一条消息错误:Exception '-[NSDictionaryM length...was throwed while invoking multiSet on target AsyncLocalStorage Any Idea ?
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>
传递给AsyncStorage.setItem()
的值需要是一个字符串。您需要将对象传递给 JSON.stringify()
或只使用纯字符串值而不是具有 "trueSwitchIsOn" 布尔值 属性.