Javascript 如何在我的redux模块中创建一个helper类型函数,以从state返回一组经过筛选的只读数据?
使用redux,我试图在我的redux模块中编写一个“helper函数”,它根据我传递给它的索引从状态返回经过过滤的数据。此数据用于根据是Javascript 如何在我的redux模块中创建一个helper类型函数,以从state返回一组经过筛选的只读数据?,javascript,reactjs,redux,Javascript,Reactjs,Redux,使用redux,我试图在我的redux模块中编写一个“helper函数”,它根据我传递给它的索引从状态返回经过过滤的数据。此数据用于根据是auth:true还是budt:true构建输入形式。表单基本上会迭代该级别的所有ToType,并有条件地显示/隐藏auth或budt输入 考虑到国家 totypesmap: [ { level:1, totypes:[ {ttno:1, ttcode:'', ttdesc:'regular', auth:t
auth:true
还是budt:true
构建输入形式。表单基本上会迭代该级别的所有ToType,并有条件地显示/隐藏auth或budt输入
考虑到国家
totypesmap: [
{
level:1,
totypes:[
{ttno:1, ttcode:'', ttdesc:'regular', auth:true, budt:false},
]
}
]
我在模块中导出了一个函数,该函数需要一个index
参数,并从状态返回其相应的totypesmap[index]
。然而,为了从它内部获得状态,我必须使用getState()
,它期望通过我假设的数据来解析承诺
我是否应该用其他方式来实现这一点
export const MyTOTypes = (level) => {
return (dispatch, getState) => {
const state = getState()
// return state.masterdata.totypesmap[level].totypes
}
}
在我的容器或组件中,我只需
从'redux/modules/masterdata'导入{MyTOTypes}
,然后在需要知道分配给我的“级别”的to类型时调用它MyTOTypes(0)
如果数据是常量,不要将其放入redux存储中。只需将它放在一个模块中,并公开助手方法来检索数据
const totypesmap = [ ... ];
export function MyToTypes(level) { return totypesmap[level].totypes; }
如果你真的想把它放在Redux存储中,那么让你的方法把state
作为第一个参数。您的React组件将从其MapStateTrops
方法中调用此方法,并且存储状态可用:
export function MyToTypes(state, level) { return state.totypesmap[level].totypes; }
主数据实际上并不被认为是恒定的,因为它是从componentDidMount的后端提取并推送到存储中的。我需要编写一些函数,将totypesmap过滤到我想要的级别。我可以在每个容器中编写一个函数,但这是重复的。其思想是能够在任何地方使用此函数,而不需要传入状态。然后让助手函数将
state
作为第一个参数,并让组件从connect
的mapstatetops
方法中调用助手函数。