Лучший подход к доступу государства в сагах? - PullRequest
0 голосов
/ 18 января 2020

Я сейчас использую reselect, redux и sagas. Это моя ситуация. У меня есть 3-4 вызова API для получения данных в моем приложении. Каждому из этих данных API необходимы определенные c значения из 1 основной выборки API, которая является первым вызовом API. То, что я сейчас делаю, находится в моих сагах, я использую yield select(selectData), чтобы всегда получать последние доступные данные в состоянии. Однако я заканчиваю тем, что звонил этим пару раз. Это хороший подход или я ошибаюсь? Вот пример одной из моих саг:

function* fetchCategories() {
  const company = yield select(selectOrganizationCompanyId); // Fetched from another api
  const currentBoardId = yield select(selectCurrentBoardId); // Fetched from another api
  const categories = yield select(selectBoardCategories); // Check if categories is already in state

  if (shouldFetch(categories)) {
    try {
      const result = yield axios.get(
        `https://company.com/api/v1/public/${company}/ideaboards/${currentBoardId}/categories`
      );
      yield put(fetchCategoriesSuccess(result.data.rows));
    } catch (error) {
      yield put(fetchCategoriesFailure(error.message));
    }
  } else {
    yield put(fetchCategoriesState());
  }
}

Итак, мой вопрос был, является ли это подходом хорошей практики или я должен включить требуемое состояние в свои отправки компонентов?

Заранее спасибо!

...