使用伟大的react-boilerplate项目。然而,我发现的关于将react,redux和immutable.js组合在一起(甚至在样板:/中)的所有例子都是微不足道的。我的应用程序是真实的,我们有嵌套对象,嵌套数组等。
我的问题......
这是在react-redux应用程序的react组件上下文中使用immutable.js的正确模式吗?应该在组件中使用immutable.js方法还是应该在其他地方有逻辑(selector?other?)所以组件使用普通的JS对象?
如果这不正确,那么将这些碎片捆绑在一起的首选模式是什么?
<IconMenu>
{this.props.card.get('related_cards').map(card => (
<MenuItem
key={card.getIn(['stream', 'id'])}
primaryText={card.getIn(['stream', 'name'])}
onTouchTap={this.onTouchTap.bind(this, card.getIn(['stream', 'id']))}>
</MenuItem>
))}
</IconMenu>
这里我们只是遍历related_cards
数组并显示每个stream
对象名称。 (父组件包含通过redux store提供的cards
的Immutable.Map)
以下是通过card
提供给组件的单个this.props.card
对象(以JS形式提供的可读性):
我问,因为我看过很多相互矛盾的例子,有些人在他们的选择器或组件中使用原始toJS()
immutable.js方法,其他人则诅咒toJS()
&# 39;存在并说那些没有正确使用库。
对于更多上下文...我们cards
来自选择器:
export const selectCards = () => (state) => state.get('cards');
mapStateToProps
export const mapStateToProps = (state, props) => createStructuredSelector({
cards: selectCards(),
});