在设置页面中,我将一个复选框选中为默认值。如果用户取消选中它,那么应用程序中的所有图像都将被隐藏,用户将无法看到整个应用程序中的任何图像。我想我需要控制复选框的状态(选中与否),在单击/按下复选框时更改该值,将该新值传递给所有应用程序(如何?),然后根据该值我可以决定是否显示图像。
所以基本上,我的问题是访问该状态值,然后决定显示什么。这是我在设置页面中使用的代码:
设置页面:
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(
<TouchableOpacity onPress={()=>this.toggleStatus()}>
<Text>
press me to change state
</Text>
</TouchableOpacity>
第二页:我需要访问存储在 asyncStorage 中的值
componentDidMount() {
const value = AsyncStorage.getItem('myCheckbox', (value) => {
JSON.parse(value)
console.log("my check box value ", value)
});
}
这段代码工作正常,每次我按下它时它都会将状态的值从 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)
}
PS:我正在使用本机基础,我想知道是否可以在复选框本身而不是 touchableOpacity 中执行 onPress