React-redux:选择相同项后防止重新渲染的位置

时间:2017-12-24 08:56:26

标签: redux react-redux

我有react-redux app。

在我的应用程序中,我有很多用户可以选择项目的地方,例如 - 选择侧栏中的主菜单,选择项目主菜单,选择标签。

这些动作中的每一个(select_manu,select_item)都会导致多个减速器的响应。

我希望防止减速器在所选项目与当前项目相同时更改状态。

我的问题是:

正确的地方在哪里提出要求:

 if (currentTab!= selectedTab)

第一个选项:

在动作创造者处,通过thunk。类似的东西:

export const selectTab = (selectedTab) => {
  return {
    type: Const.SELECT_TAB,
    selectedTab
  }
};

export const tabClick = (tab) => {
      return function (dispatch, getState) {
           const currentTab = getState().active.tab;
           if (currentTab!= tab) {
              dispatch(selectTab(tab))
           }
      }

};

第二个选项

在容器上,例如:

const mergeProps = (stateProps, dispatchProps, ownProps) => {

return {

  onTabSelection: (tab) => {
    if (tab != stateProps.tab)
      dispatch(selectTab(tab));
  }

0 个答案:

没有答案