Formik-组件正在将类型为undefined的不受控制的输入更改为受控制

时间:2019-07-27 04:00:25

标签: reactjs formik

我正在将<FieldArray />与Formik一起使用。在该项目中,当客户每次按下“添加更多”按钮时,它将在Formik的管理下生成一个动态字段。

在Formik中,我使用来自state的initialValues,并启用enableReinitialize = {true}。当api调用将状态从空数组更新为数组中的一些记录时,修改字段时新生成的字段将引发此控制台错误:-

警告:组件正在更改类型undefined为受控的不受控制的输入。输入元素不应从不受控制切换为受控制(反之亦然)。在组件的使用寿命中决定使用受控还是不受控制的输入元素。

state = {
    formData: {
        conference_sections: []
    }
}

componentDidMount() {
    // call api; data array returned will setState to conference_sections: []
}

<Formik
    enableReinitialize={true}
    initialValues={this.state.formData}
    validationSchema={Schema}
    onSubmit={this.handleSubmit}
    component={this.form}
/>

还有更多发现:-

  • api调用Conference_sections前的状态为空数组-> api调用带有3条记录的Conference_sections之后的状态->将引发错误

  • 在api调用Conference_sections 3记录之前的状态->在api调用带有3条记录的Conference_sections之后的状态->不会引发错误

  • 在api调用Conference_sections 3条记录之前的状态->在api调用带有3条记录的Conference_sections之后的状态->“添加更多”按钮添加1条记录,总共4条记录->会抛出错误

我的观察是,当更新的记录数大于初始状态的记录数时,Formilk将无法管理新字段。

我该如何改善情况?

0 个答案:

没有答案