在useState设置默认值之前,React.js运行useEffect

问题描述

我有一个名为employee.js的组件。我使用此组件创建员工并更新员工。 我管理的状态为isUpdate

借助useEffect钩子,我更改了isUpdate=true。这意味着该组件可以作为更新组件。 isUpdate的默认值为false。

我使用formik进行验证。

useEffect(() => {
        if (props.location.state && props.location.state.update) {
            // update
                        
            console.log('line 1')
            
            getEmp(props.location.state.id);
            
            console.log('line 2')
        }
    },[props.location.state,console.log('initial values',initialValues)]);

这是我的useEffect钩子代码。请注意控制台日志中的“第1行”,“第2行”和“初始值”分别为一个。

我的问题是,甚至在line 1之前都打印了初始值。因此,那时初始值是空的。但是这些值设置为formik形式。即使更改了初始值,它也不会反映在用户界面中。

我来自vuejs世界,并且是新来的。在vuejs中,它创建了生命周期挂钩。它先于任何事物运行。在这里,组件似乎甚至在useEffect钩子之前就已加载。

如何在反应世界中解决这个问题?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)