我需要在反应本机应用程序中的AsyncStorage中存储布尔值。存储的值将在整个应用程序中使用。实际上,用户会在设置页面中将变量设置为true或false,并根据该值,我在应用程序的其他页面中进行一些更改。
这是我正在使用的代码 设置页面(将值设置为true或false,但默认值为true)
constructor(props) {
super(props);
this.state ={
status: true
}
};
toggleStatus(){
this.setState({
status:!this.state.status
});
// AsyncStorage.setItem('myCheckbox',JSON.stringify(this.state.status));
//I even hardcoded the value stored and set it to false but it didn't work
AsyncStorage.setItem('myCheckbox', JSON.stringify(false));
}
..
<TouchableOpacity onPress={this.toggleStatus.bind(this)}>
<Text> touch me </Text>
</TouchableOpacity>
在我将使用存储在AsyncStorage中的值的其他页面之一:
componentDidMount() {
const value = AsyncStorage.getItem('myCheckbox', (value) => {
JSON.parse(value)
console.log("my check box value ", value)
});
答案 0 :(得分:2)
在AsyncStorage(here)的React Native文档中,它表示所有方法都返回Promise
。
您可以使用async/await
,但我们会ES6
方式。
AsyncStorage.getItem('myCheckbox').then((value) => {
console.log(value);
});