我正在使用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/

10-12 00:25
查看更多