React Native AsyncStorage First Value Null

时间:2018-04-22 10:08:09

标签: reactjs react-native asyncstorage

我正在使用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();
}

1 个答案:

答案 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();  
}