Получить данные в редукторном редукторе и действии - как это сделать - PullRequest
0 голосов
/ 06 марта 2020

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

async getData() {
    const amount = this.props.amount;
    if (amount === isNaN) {
      return;
    } else {
      try {
        await fetch(
          `https://api.exchangeratesapi.io/latest?base=${this.props.base}`,
        )
          .then(res => res.json())
          .then(data => {
            const date = data.date;
            const result = (data.rates[this.props.convertTo] * amount).toFixed(
              4,
            );
            this.setState({
              result,
              date,
            });
          }, 3000);
      } catch (e) {
        console.log('error', e);
      }
    }
  }

Как должно выглядеть действие или редуктор или оба в редуксе, чтобы получить тот же результат?

1 Ответ

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

Redux не позволяет вам делать вызовы API в действиях или редукторах. Вместо этого вы можете использовать такие библиотеки, как redux-observable , redux-saga или redux-thunk . Я лично рекомендую наблюдаемую приставку.

Если вы все еще хотите попробовать сделать это самостоятельно, вам придется создать три действия - одно для запроса, одно для успеха вызова API и одно для отказа. Вы можете написать тот же код и вместо setState отправлять соответствующие действия до и после разрешения вызова.

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