来自嵌套组件的 Formik 字段未更新

Formik field from nested component not updating

我有以下场景:

主要成分:

...
return (
 <Formik
   enableReinitialize
   initialValues={{
     name: this.state.name,
     newName: this.state.newName, // this field is inside the nested component
   }}
   validationSchema={mySchema}
   onSubmit={...}
 >
   {
     ({ errors, values, ... }) => (
       <Form ref={this.formRef}>
         ...
         <Field name="name" type="text" />
         ...
         <NewNameForm />
       </Form>
     )
   }
 </Formik>
);

NewNameForm 组件:

...
return (
  <div>
    <Field name="newName" type="text" />
  </div>
);

我的方法是不是错了,我可以像这样嵌套带有额外字段的组件吗? newName 没有得到更新所以我显然做错了什么。

我通过将 Formik 的 setFieldValue 方法传递给子组件的 props 解决了这个问题,如下所示:

onNameChange={(name) => {
  setFieldValue('newName', name);
}}