【发布时间】:2017-07-18 04:00:39
【问题描述】:
目前的做法是将整个书单连接成书单组件。但是,仅通过更改状态中的几个字段来渲染巨大的组件效率不高。 我不知道如何将每个图书组件映射到每个单独的图书状态。
项目正在使用 redux。应用全局状态是这样的
{
"books": [
{
"field1": "field1",
"field2": "field2",
"field3": "field3",
} ...
]
}
在 Book List 组件中,我们使用 react redux 连接 list
export default connect(state => ({
books: state.books
}))(BookListComponent);
现在需求变了,书里的字段不会经常变了。问题是,如果更改了一个字段,它将更新整个 BookListComponent。这不是我期望的高性能组件。
我想将连接逻辑下推到单个 Book 组件,以便使用 reselect
状态没有书的索引,我不知道怎么写connect来让它工作
export default connect(state => ({
books[index]: state.books[index]
}))(BookListComponent);
感谢您的提前,欢迎所有选项
【问题讨论】:
-
如果您使用
key属性渲染您的图书列表,您不必太担心。您的物品将被跟踪并相应更新。然后你也可以为Book组件写shouldComponentUpdate函数,告诉什么时候不应该重新渲染一本书。
标签: reactjs redux react-redux reselect