Не устанавливается состояние с данными, возвращаемыми из вызова извлечения - PullRequest
0 голосов
/ 01 марта 2020

Я могу console.log(data) до и после строки setState, но не могу успешно установить состояние подтверждения, но корзина работает.

    const init = {
      method: 'POST',
      body: JSON.stringify(information),
      headers: { 'Content-Type': 'application/json' }
    };
    fetch('api/orders', init)
      .then(response => response.json())
      .then(data => {
        if (!data.error) {
          this.setState(state => ({ cart: [], confirmationDetail: data }));
        } else {
          Swal.fire(data.error);
        }
      });
  }```

Ответы [ 3 ]

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

попробуйте это:

          fetch('api/orders', init)
            .then((response) => response.json())
            .then((findresponse) =>{
                this.setState({
                   cart: [], 
                   confirmationDetail: data
                });
            })
            .catch((err) =>{
                console.log(err);
                }
            });
0 голосов
/ 02 марта 2020
fetch('api/orders', init)
      .then(response => response.json())
      .then(data => {
        if (!data.error) {
          that.setState({
             ...confirmationDetail,
             confirmationDetail: data,
             cart: []
          });
        } else {
          Swal.fire(data.error);
        }
      });
0 голосов
/ 01 марта 2020

Я думаю, использование this внутри вызова выборки - проблема. В тот момент, когда вы пытаетесь вызвать это, на самом деле не определено. Можете ли вы попробовать следующие?

    const init = {
      method: 'POST',
      body: JSON.stringify(information),
      headers: { 'Content-Type': 'application/json' }
    };
    const that = this;
    fetch('api/orders', init)
      .then(response => response.json())
      .then(data => {
        if (!data.error) {
          that.setState(state => ({ cart: [], confirmationDetail: data }));
        } else {
          Swal.fire(data.error);
        }
      });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...