不可变JS - 在嵌套映射中获取值

时间:2017-11-17 15:53:24

标签: javascript reactjs dictionary redux immutable.js

我使用的是immutableJS,React / Redux,我有这张地图,我需要获取actions的值,所以它会像 - > allRetrospectivesMap - > id - > current_stage - > actions

enter image description here

我有这个代码并且它有效,但它非常丑陋,有没有更好的方法呢?

    class UserActionItems extends Component {
      render() {
        const { retrospectives } = this.props
        const actions = flatten(
          Object.keys(immutableHelpers.toJS(retrospectives))
          .map(key => retrospectives.get(key))
          .map(retro => immutableHelpers.toJS(retro.getIn(['current_stage', 'actions'])))
        ).value()

    return (
       <div> 
          <ActionsList
          actions={actions[0]}
          users={[]}
          />
       </div>
    )
  }
}

    const mapStateToProps = ({ allRetrospectivesMap }) => ({
      retrospectives: allRetrospectivesMap
    })

谢谢! :)

1 个答案:

答案 0 :(得分:2)

您可以使用来自immutable js的.get()方法执行此操作。

getIn()

详细了解here