我有以下情况:
主要组件:
...
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
尚未更新,因此我显然做错了。
答案 0 :(得分:0)
我已经通过将Formik的setFieldValue
方法传递给子组件的props来解决了这个问题:
onNameChange={(name) => {
setFieldValue('newName', name);
}}