在设置页面中,我选中了一个复选框作为默认值 . 如果用户取消选中它,则应用程序中的所有图像都将被隐藏,用户将无法在整个应用程序中看到任何图像 . 我想我需要控制复选框的状态(选中或不选中),单击/按下复选框时更改该值,将新值传递给所有应用程序( HOW? ),然后根据该值我可以决定是否显示或不显示图像 .

所以基本上,我的问题是访问该状态值,然后决定显示什么 . 这是我在设置页面中使用的代码:

设置页面:

constructor(props) {

super(props);

this.state ={

status:false

}

};

toggleStatus(){

this.setState({

status:!this.state.status

});

//I even hardcoded it to false but i keep getting null

AsyncStorage.setItem('myCheckbox',JSON.stringify(false));

//AsyncStorage.setItem('myCheckbox',JSON.stringify(this.state.status));

}

...

render() {

return(

this.toggleStatus()}>

press me to change state

第二页:我需要访问存储在asyncStorage中的值

componentDidMount() {

const value = AsyncStorage.getItem('myCheckbox', (value) => {

JSON.parse(value)

console.log("my check box value ", value)

});

}

我一直在控制台:

191525f9-0ed4-4f8d-9f72-036b4ee1524b.png

这段代码工作正常,每当我按下它时,它会将状态值从false更改为true

UPDATE 尝试在设置页面中存储一个没有等待的简单字符串:

toggleStatus() {

this.setState({

status: !this.state.status

});

AsyncStorage.setItem("myCheckbox", "save me");

console.log("in the toggle status function", this.state.status)

}

在我使用的页面中:

componentDidMount(){

let value = AsyncStorage.getItem("myCheckbox")

console.log('in the other page i get ', value)

}

我进入控制台:

6eec3a1c-af51-4969-a4db-65169feb4a08.png

出了什么问题?!

PS:我使用原生基础,我想知道我是否可以在复选框本身而不是touchableOpacity中执行onPress

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐