我正在使用React / Redux / Immutable,在我的状态下,我存储了许多News
对象。每个News
分配了多个category_ids
。类别也存储在状态(不同的子树)中。我在不同的教程中读到,这种规范化是一件好事。
因此,现在在我的render()
组件的News
功能中,我要显示这些类别-当然,不仅要显示ID,还要显示类别的名称。
组件/News.js
renderCategories() {
const { news } = this.props
return (
<CategoryList categories={news.get('category_ids')} />
)
}
render() {
return (
<div>
{this.renderHeadline()}
{this.renderText()}
{this.renderCategories()}
</div>
)
}
我的
CategoryList
应该是一个表示性的组件,因此它将仅从其父级接收道具,而不会被connect
传递给Redux。所以我的问题是:解决这些对不同实体的引用的推荐方法是什么?请分享您的想法。如果您需要更多具体信息,请告诉我。
最佳答案
通常,将数据反规范化的位置位于连接的组件的mapState
函数中。这意味着父组件将需要将ID映射到正确的项目,或者它应呈现已连接的子组件的列表,将单个项目ID作为道具传递给每个子组件,并且子组件应使用该ID查找自己的商品和相关数据。
您可能需要阅读Querying a Redux Store,其中讨论了对数据进行非规范化的方法。
关于javascript - 如何以及在何处解析归一化状态的React/Redux应用中对其他实体的引用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39399905/