加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

reactjs – 如何使用react redux单独连接数组的每个元素

发布时间:2020-12-15 09:36:10 所属栏目:百科 来源:网络整理
导读:目前的方法是将整本书列表连接到Book List Component.但是,通过仅更改状态中的多个字段来渲染大型组件并不高效.我不知道如何映射每个书籍组件连接到每个单独的书籍状态. 该项目正在使用redux.像这样的应用程序全局状态 { "books": [ { "field1": "field1","f
目前的方法是将整本书列表连接到Book List Component.但是,通过仅更改状态中的多个字段来渲染大型组件并不高效.我不知道如何映射每个书籍组件连接到每个单独的书籍状态.

该项目正在使用redux.像这样的应用程序全局状态

{
  "books": [
    {
      "field1": "field1","field2": "field2","field3": "field3",} ...
  ]
}

在Book List组件中,我们使用react redux连接列表

export default connect(state => ({
  books: state.books
}))(BookListComponent);

现在需求发生变化,书中的字段不会经常更改.问题是,如果更改了一个字段,它将更新整个BookListComponent.这不是我期待的高性能组件.

我想将连接逻辑推送到单个Book Component以便使用reselect

国家没有书的索引,我不知道如何写连接使其工作

export default connect(state => ({
  books[index]: state.books[index]
}))(BookListComponent);

感谢您的预付款,欢迎所有选择

解决方法

你的第二个例子几乎是正确的.可以声明mapState函数采用两个参数而不是一个参数.如果声明了两个参数,Redux将使用赋予包装器组件的props调用该mapState函数.因此,列表项的mapState函数将是:

const mapState = (state,ownProps) => {
    const book = state.books[ownProps.index];
    return {book}
}

我的博客文章Practical Redux,Part 6: Connected Lists,Forms,and Performance显示了如何执行此操作的一些示例,还讨论了Redux中应用程序性能的关键注意事项.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读