我正在使用AsyncStorage获取本地记录。但是当使用get调用get时,将返回状态的第一个null。然后它给出了值(值)。
componentDidMount(){
if(this.props.gelenSabitIlce){
var processLak = this.props.gelenSabitIlce.toString();
AsyncStorage.setItem('nole1', processLak);
}
AsyncStorage.getItem('nole1').then((value) => {
var obj = JSON.stringify(value);
this.setState({ nole1: obj });
}).done();
}
答案 0 :(得分:0)
AsyncStorage
- 就像名字所说的那样 - 异步。您正在componentDidMount
同步执行代码,因此您将获得null。
正确的方法是使用 async / await (查看文档:{{3}}了解详细信息)模式,或者根据您当前的代码,使用以下内容:
componentDidMount() {
const { gelenSabitIlce } = this.props;
if (gelenSabitIlce) {
const processLak = gelenSabitIlce.toString();
AsyncStorage.setItem('nole1')
.then(this.getValue);
}
}
getValue() {
AsyncStorage.getItem('nole1')
.then((value) => {
const nole1 = JSON.stringify(value);
this.setState({ nole1 });
}).done();
}