在componentDidMount()中寻找更好的解决方案setFieldValue()

时间:2019-09-06 04:06:51

标签: reactjs lifecycle formik

我正在通过formik实现功能更新用户信息。当componentDidMount时,我对每个字段都使用setFieldValue(),但是它不起作用,我发现了settimeout,但是我觉得有些窍门。请给我一些更好的解决方案。

My UI

My code

1 个答案:

答案 0 :(得分:0)

使用Formik提供的'initialValues'选项将是解决您的问题的更干净的方法。 https://jaredpalmer.com/formik/docs/api/formik#initialvalues-values

仅在API调用完成并且有可用数据时才呈现表单。将数据作为initialValues

传递给Formik
class FormComponent extends Component {
        constructor(props) {
            super(props);
            this.state = {
              //some data
            };
          }

       render() {
            return (
            <Formik
              initialValues={this.state}
              onSubmit={onSubmit}
              render={
                ({
             ......