- react-native
- 反应最终形式
- 矩形导航
我需要将我的表单拆分为子窗体。子表单将在 React-Native 中的单独屏幕上呈现,但我需要它们成为同一表单处理对象的一部分。从每个子窗体中,我需要访问完整的窗体状态(对于所有字段(,但每个子窗体只会呈现某些字段。
有没有办法将表单对象传递到另一个屏幕/组件并继续使用主表单的状态处理/验证?
例:
MainForm
FieldX
FieldY
Button to open subform A
SubFormA
FieldA1
FieldA2
FieldX <- reused from main form, might be readonly in subform A
Button to go back to main form
Button to open subform B
SubFormB
FieldB1
Button to go back to main form
表单的实际提交只能从主表单中预处理。我有一个较旧的表单库进行此设置,但我正在使用 Modals 来显示子窗体,这些子窗体内联在主窗体中。但是我想停止使用模态,而是通过以某种方式传递表单对象来推送具有子表单功能的单独屏幕(使用 react-navigation(。
你可以使用 React Redux 拥有一个能够共享所有信息的应用商店。 创建您的商店并调度您的操作,然后您可以从那里获取表单的所有变量(字段(。
我又摆弄了一些,找到了一种方法。以为我会回答这个问题供其他人找到。
-
Form
组件的 render 属性实际上将表单实例作为参数获取。 -
Form
组件还将表单实例作为道具
这两个功能使得只需将表单实例传递给另一个表单组件即可。我在同一屏幕中尝试了这个,它就像一个魅力。我希望当我使用反应导航按下下一个屏幕时,我不会遇到卸载主Form
的麻烦。
编辑:它在屏幕之间也能完美运行。我通过反应导航参数对象将表单实例发送到子表单。