Как в React'e с использованием Redux-Saga дождаться ответа после диспатча action'a и использовать полученные данные?

  • 22 августа 2023 г. 7:06
Ответы на вопрос 1
В Redux Saga для дожидания ответа после диспатча action'а и использования полученных данных используется эффект `take` вместе с эффектом `call`. 

Пример кода:

```javascript
import { take, call, put } from "redux-saga/effects";
import { fetchDataTest } from "./actions"; // импортируем экшен

function* handleTest(data) {
  // какой-то код

  yield put(fetchDataTest(data.id)); // диспатчим action
  
  const action = yield take(fetchDataTest.fulfilled); // дожидаемся ответа от сервера
  const fetchData = action.payload; // получаем данные

  // далее используем полученные данные
}
```

В этом примере мы отправляем запрос на сервер с помощью диспатча экшена `fetchDataTest`, затем с помощью эффекта `take` дожидаемся факта выполнения экшена `fetchDataTest.fulfilled` (которое будет произведено после успешного завершения запроса на сервер), а затем получаем данные из ответа с помощью `action.payload`.
Похожие вопросы