[英]Setting initial state values when using react-select with Formik
[英]How to pass state values to initial values in formik in react js
我在我的反应应用程序中使用 formik 库。 最初,我在构造函数中声明了状态值,在 componentDidMount 中,我正在使用该应用程序响应调用 API 正在更新状态值,任何人都可以帮助我将状态值传递给 fomik 初始值
在我的情况下,formik 采用在构造函数中声明的初始状态值。提前谢谢
class Dropdown extends Component {
constructor(props) {
super(props);
this.state = {
//some data
};
}
componentDidMount() {
//api call
this.setState( {
//update state values with api response data
});
}
render() {
return (
<Formik
initialValues={this.state}
validate={validate(validationSchema)}
onSubmit={onSubmit}
render={
({
values,
errors,
touched,
status,
dirty,
handleChange,
handleBlur,
handleSubmit,
isSubmitting,
isValid,
handleReset,
setTouched
}) => (
//form uses initialValues
)} />
)
}
}
将 enableReinitialize 添加到 formik 解决了我的问题
<Formik
enableReinitialize
..
render={
({
..
}) => (
//form uses initialValues
)} />
回答 Abhiram 的功劳,但如果您已更新为钩子:
useFormik({
initialValues: initialData,
enableReinitialize: true,
onSubmit: values => {
// Do something
}
});
您可以在 initialValues 属性中强制设置每个值:
<Formik
initialValues={
formValue1: this.state.value1,
formValue2: this.state.value2,
...
}
validate={validate(validationSchema)}
onSubmit={onSubmit}
render={
({
values,
errors,
touched,
status,
dirty,
handleChange,
handleBlur,
handleSubmit,
isSubmitting,
isValid,
handleReset,
setTouched
}) => (
//form uses initialValues
)
}
/>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.