使用redux,我试图在我的redux模块中编写一个“辅助函数”,它根据我传入的索引从状态返回过滤后的数据。此数据用于根据auth: true
或budt: 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类型时调用它
答案 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; }