【发布时间】:2017-10-27 11:44:20
【问题描述】:
我刚刚在我的 react native 应用程序中从本地基础实现了复选框组件。每次我选中/取消选中复选框时,一些变量都会更改其状态(真或假)然后存储。基于存储在 asyncStorage 中的该值,我可以在应用程序中进行一些更改,它工作正常。
我现在面临的问题是:我需要复选框在使用应用程序时保持选中/未选中状态(即使从一页更改为另一页)并且在用户没有更改时它不能更改(它是更改页面后始终返回默认值) 我将变量存储为字符串,但显然复选框只接受布尔变量。 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
});
}
});
}
【问题讨论】:
-
将复选框的状态存储在DB或数组中,并渲染
标签: javascript checkbox react-native local-storage native-base