redux表单如何提交所有注册字段

redux表单如何提交所有注册字段,redux,redux-form,Redux,Redux Form,我已经花了好几个小时试图找出如何做到这一点,所以我希望你们都能提供帮助。以下是我的情况: 我有一个用redux表单包装的复杂的多页向导 基本上所有输入都是可选的。用户可以想走多远就走多远,并且可以尽早放弃工作流 我希望每个字段都以null开头,并且仅当用户实际看到某个字段时才设置该字段的值。例如,我希望将复选框字段值设置为null,并且仅当用户实际点击该向导页面时,才在后端将其设置为false,即使他们从未与该字段交互。 我希望不惜一切代价避免在向导页面上命名字段或保存任何向导元数据(例如,用户

我已经花了好几个小时试图找出如何做到这一点,所以我希望你们都能提供帮助。以下是我的情况:

  • 我有一个用redux表单包装的复杂的多页向导
  • 基本上所有输入都是可选的。用户可以想走多远就走多远,并且可以尽早放弃工作流
  • 我希望每个字段都以null开头,并且仅当用户实际看到某个字段时才设置该字段的值。例如,我希望将复选框字段值设置为null,并且仅当用户实际点击该向导页面时,才在后端将其设置为false,即使他们从未与该字段交互。
  • 我希望不惜一切代价避免在向导页面上命名字段或保存任何向导元数据(例如,用户已进入第4页)。这将真正降低灵活性,因为我们的工作流程正在快速发展,我希望它能够正常工作,因为我可能会在页面之间移动字段
  • Redux表单对于这个通用向导用例来说非常棒,因为它在字段呈现到页面中时动态注册字段。我可以在next/submit中捕获这些值并将它们保存到数据库中,但这只是用户接触的子集

    理想情况下,我可以设置一些选项,只提交所有注册字段的值,但这并不存在。我想要追求的下一个选项是在页面的挂载上抓取所有注册的字段,并使用该字段的默认值调用onChange,这样它们都以表单值结束。但是,我找不到任何方法从redux表单获取注册字段的句柄。我想我可以直接进入商店,我知道它们存在于状态树的表单中,但这看起来非常脆弱和草率

    如果我给表单initialValues,那么所有内容都提交。但是,这并不能真正解决我的问题,因为我仍然无法判断用户何时真正决定将某个值保留为默认值(即已看到该页面)。Redux表单在动态计算给定时间页面上的表单字段方面已经做得很好,我只想利用这一点


    你有什么想法吗?如果不清楚,请告诉我。

    我认为最好的选择可能是:


    基本上,这表明了我在问题中提到的想要避免的事情——进入表单状态以获取注册字段。我认为,如果我在整个表单中使用initialValue,并通过链接的GitHub注释中的代码向下过滤到提交时的注册字段,我将能够做到这一点。凌乱,不太理想,但也不可怕。

    我认为Redux表单的注册字段概念在这里对您没有多大帮助。注册字段跟踪在任何给定时间点装入的字段,而不是在表单生命周期的任何时间点装入的字段

    您可以将每个页面放在一个表单部分中,并添加一些机制,在装载时标记表单部分已经装载并且(可能)被用户看到。然后,您可以在提交时过滤整个表单部分,而不需要了解内容,这是您想要避免的