Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在我的redux模块中创建一个helper类型函数,以从state返回一组经过筛选的只读数据?_Javascript_Reactjs_Redux - Fatal编程技术网

Javascript 如何在我的redux模块中创建一个helper类型函数,以从state返回一组经过筛选的只读数据?

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

使用redux,我试图在我的redux模块中编写一个“helper函数”,它根据我传递给它的索引从状态返回经过过滤的数据。此数据用于根据是
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
方法中调用助手函数。