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

标签 javascript reactjs redux

使用 redux,我尝试在 redux 模块中编写一个“辅助函数”,该函数根据我传入的索引从状态返回过滤后的数据。该数据用于根据 auth: truebudt: 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/

相关文章:

javascript - ReactJS + JavaScript : How to parse array into a new array?

javascript - 使用数组中的数据链接属性

javascript - 如何使用功能组件从 Redux 存储中检索数据并避免 useSelector 和 useDispatch

javascript - 单击全选按钮后检查/取消选中复选框的 reducer 功能 -redux React

javascript - 如何在使用 React 提交表单后重定向用户

javascript - 如果只有一个元素,AngularJS ng-repeat 不起作用

javascript - 如何等到异步步骤完成?

javascript - 如何在从 json 获取数据时在 React 上渲染 html 标签

reactjs - 如何访问 Gatsby 模板组件中的上下文变量?

reactjs - React useContext 和 useEffect 显示陈旧数据