从表单外部重置 React Native Formik 表单

Ben*_*Ben 3 javascript reactjs react-native formik

我知道您可以resetForm在 Formik 中使用以重置onSubmit. 但是,有没有办法通过为它分配一个 ref 并以某种方式调用它的 rest 表单方法来以编程方式重置它?

Has*_*dil 5

有一个名为 innerRef 的道具可以为 formik 表单制作 ref

<Formik
   innerRef={(p) => (this.formik = p)}
/>
Run Code Online (Sandbox Code Playgroud)

然后像这样使用它:

onPress={() => this.formik.resetForm()}
Run Code Online (Sandbox Code Playgroud)

或者使用功能组件:

const formikRef = useRef();
<Formik
  innerRef={formikRef}
  ...
/>
Run Code Online (Sandbox Code Playgroud)

然后使用

onPress={() => formikRef.current?.resetForm()}
Run Code Online (Sandbox Code Playgroud)

  • TS 仍然抱怨 `{}`,所以这里有一句会让 formik 和你自己高兴的一行:`const formikRef = useRef&lt;FormikProps&lt;Record&lt;string,unknown&gt;&gt;&gt;(null);` (5认同)