Извлечение и сохранение данных React Native API в виде глобальных данных

#javascript #android #reactjs #react-native #fetch

Вопрос:

Я новичок в реагировании на родной язык. Я создаю простое приложение с навигацией по ящикам. После входа в систему я хочу обновить имя пользователя и адрес электронной почты в ящике. Я попытался извлечь данные из API, используя fetch() этот ComponentDidMount() метод, но проблема в том, что, когда я устанавливаю данные в состояние, у них есть некоторая ошибка обещания.

Я хочу знать лучший подход к извлечению данных из API и их хранению, чтобы они были доступны в любом компоненте, обычно в токене аутентификации и электронной почте пользователя.

Кроме того, кто-нибудь может предложить лучший способ поддержки кода с помощью извлечения API, я пишу код для извлечения в каждом компоненте, чтобы он везде был загроможден.

Код Обновления:

 export class CustomDrawer extends React.Component{
 state = {
      token: '',
      id: '',
      user: '',
 }
 componentDidMount = async() =>{
    await this.getAll();
 }

 setMyToken = () => {
   AsyncStorage.getItem('authToken').then((value) =>{
   let temp = JSON.parse(value)
   this.setState({token : temp.token})
 }

 getAll = async() => {
  await this.setMyToken();
  return fetch(`API_URL`).then(response=>response.text().then(text=>{
  const data = text amp;amp; JSON.parse(text)
  this.setState({user: data.username,  id: data.id})
 })).catch(function(error){
     console.log(error)
 });
 }

}
 

Комментарии:

1. Ты поступаешь правильно. Здесь может быть синтаксическая ошибка. Попробуйте опубликовать код здесь. Кроме того, официальная документация для fetch : reactjs.org/docs/…

2. добавлен код.. Если я выполняю setMyToken() в componentDidMount (), а затем вызываю функцию GetAll() при нажатии кнопки все работает нормально, но когда я пытаюсь загрузить оба из них автоматически, появляется ошибка.

3. вызовите метод setMyToken() в componentDidMount() и в асинхронном режиме затем() вызовите метод GetAll() с такими параметрами, как GetAll(JSON.parse(значение)), и вы получили свое значение в методе GetAll (), а также удалите возврат в GetAll() зачем вам это нужно ?

4. @AnkitPatel Привет, спасибо! Это сработало.. получил данные, но теперь отображается предупреждение: не удается выполнить обновление состояния реакции для размонтированного компонента.