访问Sagas中状态的最佳方法?

时间:2020-01-18 14:23:33

标签: reactjs redux react-redux redux-saga reselect

我当前正在使用reselectreduxsagas。这是我的情况。我有3-4个api调用来获取应用程序中的数据。这些api数据中的每一个都需要从1个主要api提取中获得特定值,这是第一个api调用。目前,我正在执行的操作是在sagas中,我使用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());
  }
}

所以我的问题是,这是否是一种好的实践方法,还是应该在组件分派中包括所需的状态?

谢谢!

0 个答案:

没有答案