首页 文章

保存/保持CheckBox的状态以响应本机应用程序(已选中或未选中)/提供给复选框的无效支持

提问于
浏览
0

我刚刚在我的本机应用程序中实现了本机库中的复选框组件 . 每次我选中/取消选中该复选框时,某些变量会更改其状态(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
                });
            }   
        });

    }

但是,它不断发出警告:
enter image description here

1 回答

  • 0

    我复制了你的代码(在:https://snack.expo.io/SJSzZzvbW)并没有't find any reason on it why the type isn' t boolean . 你是否在代码中的任何其他地方操纵状态?

相关问题