Могу ли я сказать, когда заканчивается вызов компонента в redux-saga? - PullRequest
1 голос
/ 20 марта 2019

Когда компонент выполняет вызов redux-saga, он пытается открыть значок загрузки и скрыть значок загрузки после завершения вызова redux-saga.

// at component
const app: FunctionComponent<IProps> = ({ location, history }) => {
  ...
  const [isLoading, setLoading] = useState(false);
  useEffect(() => {
    setLoading(true);
    ItemsActions.getItems(); <- this line is redux-saga call request

    // I want the redux saga call to be completed and the loading to end here!
    setLoading(false);

  }, []);
  ...
}
// at redux action & reducer
export function* getItemsSaga() {
  yield takeEvery(GET_ITEMS_REQUEST, function*() {
    try {
      const response = yield call(myApi, payload);
      yield put(GET_ITEMS_SUCCESS, { payload: response });

      // I want to complete the loading on the component now!

    } catch(e) {
      console.log(e);
    }
  });
}

1 Ответ

1 голос
/ 26 марта 2019

Просто включите оператор переключения вашего редуктора в значение GET_ITEMS_SUCCESS и измените загрузочную переменную обратно на false, когда она срабатывает. Не забудьте сделать то же самое для любых состояний ошибки.

...