如何在我的redux模块中创建一个辅助类型函数来从状态返回一组过滤的只读数据?

时间:2016-04-05 17:56:58

标签: javascript reactjs redux

使用redux,我试图在我的redux模块中编写一个“辅助函数”,它根据我传入的索引从状态返回过滤后的数据。此数据用于根据auth: truebudt: true构建输入形式。表单基本上会迭代该级别的所有类型,并有条件地显示/隐藏auth或budt输入。

鉴于州......

  totypesmap: [
    {
      level:1,
      totypes:[
        {ttno:1, ttcode:'', ttdesc:'regular', auth:true, budt:false},
      ]
    }
  ]

我在我的模块中导出了一个函数,该函数需要一个index参数并从状态返回其相应的totypesmap[index]。但是,为了从内部进入状态,我必须使用getState(),它期望使用我假设的数据来解析Promise。

我应该以其他方式实现这个目标吗?

export const MyTOTypes = (level) => {
  return (dispatch, getState) => {
    const state = getState()
    // return state.masterdata.totypesmap[level].totypes
  }
}

在我的容器或组件中,我只需import { MyTOTypes } from 'redux/modules/masterdata',然后每当我需要知道分配给我的“级别”MyTOTypes(0)的TO类型时调用它

1 个答案:

答案 0 :(得分:1)

如果数据是常量,请不要将其放在redux存储中。只需将它放在一个模块中,然后公开你的帮助方法来检索数据。

const totypesmap = [ ... ];
export function MyToTypes(level) { return totypesmap[level].totypes; }

如果你真的想在Redux商店中使用它,那么让你的方法以state作为第一个参数。您的React组件将在其mapStateToProps方法中调用此方法,并且可以使用存储状态:

export function MyToTypes(state, level) { return state.totypesmap[level].totypes; }