我刚刚在我的本机应用程序中实现了本机库中的复选框组件 . 每次我选中/取消选中该复选框时,某些变量会更改其状态(true或false)然后存储 . 根据存储在asyncStorage中的值,我可以在应用程序中进行一些更改,它可以正常工作 .
我改变它的问题(它将's always going back to the default value once changing the page ) I' m存储变量作为字符串,但显然复选框只接受布尔变量 . PS: 我试图将状态存储为布尔值,但它不起作用这是代码:
constructor(props) {
super(props);
this.state ={ status: false }
};
toggleStatus()
{
this.setState({
status: !this.state.status
});
AsyncStorage.setItem("myCheckbox",JSON.stringify(this.state.status));
}
render(){
return(
....
<CheckBox checked={this.state.status}
onPress={() => this.toggleStatus()} />
);}
我甚至试图改变这样的状态:
componentWillMount(){
AsyncStorage.getItem('myCheckbox').then((value) => {
JSON.parse(value)
this.setState({
status: value
});
if (this.state.status == 'false') {
this.setState({
status: false
});
}
else if (this.state.status == 'true') {
this.setState({
status: true
});
}
else {
this.setState({
status: false
});
}
});
}
但是,它不断发出警告:
1 回答
我复制了你的代码(在:https://snack.expo.io/SJSzZzvbW)并没有't find any reason on it why the type isn' t boolean . 你是否在代码中的任何其他地方操纵状态?