使用 redux,我尝试在 redux 模块中编写一个“辅助函数”,该函数根据我传入的索引从状态返回过滤后的数据。该数据用于根据 auth: true
或 budt: true
构建输入形式。该表单基本上会迭代该级别的所有类型,并有条件地显示/隐藏身份验证或预算输入。
鉴于国家...
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
}
}
在我的容器或组件中,我只需从'redux/modules/masterdata'导入{MyTOTypes}
,然后每当我需要知道分配给我的“级别”的TO类型时调用它 MyTOTypes(0)
最佳答案
如果数据是常量,则不要将其放入 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; }
关于javascript - 我如何在我的 redux 模块中创建一个辅助类型函数来从状态返回一组经过过滤的只读数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36433655/