我花了几个小时试图弄清楚如何做到这一点,所以我希望你们都能提供帮助。这是我的情况:
Redux-form对于这个通用向导用例非常棒,因为它会在字段呈现到页面时动态注册字段。我可以捕获next / submit上的值并将它们保存到db中,但它只是用户触及的子集。
理想情况下,我可以设置一些选项来提交所有已注册字段的值,但这并不存在。我想要追求的下一个选项是在页面的mount上获取所有已注册的字段,并使用该字段的默认值调用onChange,这样它们最终都会以表单值结束。但是,我找不到任何方法来从redux-form获取已注册字段的句柄。我想我可以直接进入商店,我知道它们存在于表单状态树中,但这看起来非常脆弱和草率。
如果我给表单initialValues,那么一切都会提交。然而,这并没有真正解决我的问题,因为我仍然不能告诉用户何时实际上决定将值保持为默认值(即已经看过页面)。 Redux-form已经很好地在给定时间动态地确定页面上的表单字段,我只是想利用它。
有关如何做到这一点的任何想法?如果不清楚,请告诉我。
答案 0 :(得分:1)
我认为最好的选择可能就在这里:https://github.com/erikras/redux-form/issues/2368#issuecomment-351690980
基本上,这表明我提到的想要避免的问题 - 进入表单状态以获取注册字段。我想如果我将整个表单的initialValues与通过链接的GitHub注释中的代码提交过滤到已注册的字段进行组合,我将能够完成这项工作。凌乱而且不完全理想,但也不可怕。
答案 1 :(得分:0)
我不认为Redux Form的注册字段概念会对您有所帮助。已注册的字段会跟踪在任何给定时间点安装的字段,而不是在表单生命周期的任何时间点已安装的字段。
您可以将每个页面放在表单部分中,并添加一些机制,这些机制在安装时标记表单部分已经安装并且(可能)由用户看到。然后,您可以在提交时过滤整个表单部分,而无需了解内容,这是您想要避免的。