渲染时自动注入实体数据

时间:2016-05-16 14:38:50

标签: redux normalizr

有没有办法在渲染时自动注入深层嵌套的实体数据?

const mapStateToProps = (state, ownProps) => {
  let boardId = ownProps.params.id

  return {
    id: boardId,
    // is there an easier method to do this?
    comments: state.entities.boards[boardId].comments.map(id => {
      return Object.assign({}, state.entities.comments[id], {
        user: state.entities.users[state.entities.comments[id].user]
      })
    })
  }
}

1 个答案:

答案 0 :(得分:1)

没有"自动",但有三种方法可以抽象出那种东西:

1)使用"选择器"函数来封装状态形状,并应用memoization。请参阅http://redux.js.org/docs/recipes/ComputingDerivedData.htmlhttps://github.com/reactjs/reselect

2)使用众多immutable data utility libraries中的一个进行嵌套获取/设置

3)使用Redux-ORM抽象处理Redux商店中的关系数据。