Как обеспечить успешное обновление данных, прежде чем их получить - PullRequest
0 голосов
/ 05 марта 2020

Я новичок в реакции и пытаюсь решить проблему, связанную с правильной связью между бэкендом и фронтэндом. Сначала я хочу обновить данные в базе данных, а затем получить обновленные данные. Получение и обновление по отдельности работают правильно. Проблема в том, что запрос Get не ожидает обновления данных. Как убедиться, что запрос get будет ждать ответа?

Я пытался использовать async / await, обещание, добавить что-то вроде yield call (success) / yield take (success) в приведенный ниже код, но это не работает как я и ожидал (есть вероятность, что я не использовал его должным образом). Есть предложения?

function* update({ data }) {
  const { //some data } = data;
  try {
    yield call(
      //update
      },
    );
  } catch (error) {
    yield put(Error(error));
  }
}

1 Ответ

0 голосов
/ 05 марта 2020

Во-первых, вам нужно вызвать API (получить API). Примечание: не нужно устанавливать Ax ios lib

demoVariable = () => {
    try {

        return axios.get('URL')

    }
    catch (error) {
        console.error(error)
    }
}

После этого вам нужно использовать метод componentDidMount () для обработки ответа

 this.demoVariable()
        .then(response => {
            if (response) {
                 // write here code fo if condition
                }
                this.setState({ //write here state })
            }
        })
        .catch(error => {
            console.log(error)
        })

И упоминать состояние как ноль ниже имени класса, например state = { stateName: null }

. Используя это, вы всегда получаете обновленную дату из API

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...