React Native AsyncStorage Первое значение Null

Я получаю локальную запись с помощью AsyncStorage. Но при вызове get с get возвращается первый ноль состояния. Затем он дает значение (значение).

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();
}
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
0
637
1

Ответы 1

AsyncStorage - как следует из названия - асинхронный. Вы выполняете свой код в componentDidMount синхронно, поэтому вы получаете null.

Правильный способ сделать это - использовать шаблон асинхронный / ожидание (подробности см. В документации: https://facebook.github.io/react-native/docs/asyncstorage.html) или, в соответствии с вашим текущим кодом, что-то вроде этого:

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

Другие вопросы по теме