以redux格式

时间:2018-10-15 16:52:58

标签: javascript reactjs forms redux redux-form

我正在使用的应用程序有很多供应商,每个供应商都包含一系列产品。我们目前正在寻找大约20个供应商,目前(所有供应商)共有4k个产品,尽管这很容易变得更大。

我们的订购视图在页面侧面显示供应商列表,然后单击供应商,然后显示该供应商的产品列表。列表中的每个项目都包含该特定产品的金额字段。本质上,整个表单需要4k字段,每个产品一个字段。

我的问题是使用redux-form时控制这么多字段的最佳方法是什么?

第一个解决方案可能是使用redux-form的<FieldArray />并具有如下形式的表单结构:

{
  suppliers: [
    {
      id: 'supplier0',
      notes: 'Some notes for this supplier',
      products: [
        {
          id: 'product0',
          amount: 10
        }
      ]
    }
  ]
}   

但是,如果我没有记错的话,这将需要使用所有4k产品的条目来初始化表单(因为在使用表单时不会动态添加或删除它们)。这也意味着对表单进行的任何形式的处理(例如提交)都需要循环遍历所有产品以检查它们是否具有金额值。

或者我一直在想我可以使用像这样的索引结构:

{
  suppliers: {
    {{supplierId}}: {
      notes: 'Some notes for this supplier',
      products: {
        {{productId}}: {
          amount: 10
        }
      }
    }
  }
}

然后,对于每个渲染的行,我只需使用供应商和产品ID构造数量字段名称:

<Field name={`suppliers.${supplierId}.products.${productId}.amount`} />

这样可以省去进行任何初始化的步骤,从而使表单状态更易于管理。

我在其他任何地方都没有真正遇到过这个问题,并且在redux-form的文档中也看不到这种用例的任何示例。第二种索引方法是否有不利之处?我绝对应该使用FieldArray代替的任何理由吗?

0 个答案:

没有答案