【问题标题】:Redux Form - multiple update function renders slowRedux Form - 多个更新功能呈现缓慢
【发布时间】:2017-12-07 13:47:14
【问题描述】:

我使用的是 redux-form 7.2.0。

在我的项目中,我的表单中有 30 个字段。

基于第一个字段值,我需要更新大约 20 个字段。我调用了 20 次更改操作创建者。渲染这 20 个字段需要更多时间。很慢。

有没有什么方法可以快速渲染?

有没有办法在单个操作中更新多个字段?

请帮我纠正这个问题

【问题讨论】:

  • 你能提供一些代码吗?
  • github.com/Subash48/reduxformegs - 渲染速度不慢.. 但渲染函数调用了 20 次
  • 我在这个表单中没有看到 30 个字段。

标签: reactjs redux redux-form


【解决方案1】:

真正唯一正确的答案是使用额外的中间件提供程序。请参阅dispatch multiple actions from Redux action creators 了解优缺点。

您可以在第一个字段更改时在状态树的某处设置一个标志,避免通过shouldComponentUpdate 进行渲染,直到所有字段都已更新,然后当所有内容都已更新时,重新设置该标志。

我能想到的唯一另一种处理方法是使用reducer.plugin 进行更大的状态更改,但我认为这是一条危险的道路,将来很容易中断,只是无法以可预测的方式运行.

目前redux-formredux 不直接支持批量字段更改。

【讨论】:

    【解决方案2】:

    只需使用 redux 表单提供的初始化操作即可。 有两种使用方法:

    1. https://redux-form.com/7.4.2/examples/initializefromstate/ 在创建表单时初始化它,就像他们在示例中所做的那样。

    2. 将“初始化”操作作为道具传递并调用以通过一次操作调用更新所有字段。

      const data = { firstName: 'John', lastName: 'Doe'};
      this.props.initialize(data);
      

      只需确保字段名称与数据对象中的键匹配即可。 这将触发一个操作,所有字段都将被初始化。

    【讨论】:

      猜你喜欢
      • 2017-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-20
      • 1970-01-01
      • 1970-01-01
      • 2018-02-11
      相关资源
      最近更新 更多