Redux Form:从外部包装组件访问 FieldArray fields prop

tom*_*rez 2 reactjs redux-form react-redux-form

我有一个由几个经典字段和两个 FieldArray 组成的表单。这些 FieldArray 位于不同的部分,但相互关联。当我向 FieldArray A 添加一个项目(一行不同类型的字段)时,应该为 FieldArray B 构建另一行。FieldArray A 和 B 的不同之处在于它们表示不同的字段集合和结构,但是,当将一行添加到 A 中时,也必须将一行添加到 B 中。

为了向 FieldArray A 添加一行,我遵循记录的方法,在 FieldArray A 的包装组件内使用Push方法进入 prop 字段。但是,我无法访问 FieldArray B 的 prop 字段。该 prop 只是可从 FieldArray B 内的包装组件内访问。

是否有其他方式或方法可以从外部访问 FieldArray B 的 prop 字段?formValues() 或 formValuesSelector() 没有用。

tom*_*rez 6

好吧,在挖掘了 redux-form 的文档以了解隐藏功能之后...我发现您可以从 redux-form 导入其操作创建者,特别是arrayPush它可以让您通过指定 formid、fieldarray 名称来推送新的字段“行”和这样的值:

给定一个 id 为 'myForm' 的 redux-form,一个FieldArray名为 'nested_model_attributes' 的 redux-form 和一个value = [subfield1: 'A', subfield2: 2, ... ]

您可以发送以下内容:

arrayPush('myForm', 'nested_model_attributes', value)

瞧...FieldArray 添加了一行新字段:)。在本例中,这是我在原始问题中引用的 FieldArray B。我需要做的就是从我将新的一行字段推送到 FieldArray A 的地方分派此方法。

  • 感谢您引导我找到解决方案@tommyalvarez!我在直接访问“arrayPush”操作创建器时遇到了一些问题。我在这里写了博客:https://calendee.com/2018/09/22/adding-to-redux-form-fieldarray/ (2认同)