首页 > 解决方案 > 为什么从状态单击按钮时不显示更新值?

问题描述

你能告诉我如何从 state 获取更新的值吗?这是我的代码 https://codesandbox.io/s/cool-ives-0t3yk

我的初始状态

const initialState = {
  userDetail: {}
};

10 digit在输入字段中输入数字,然后按 Enter 并像这样更新用户详细信息

const onSubmit = async values => {
    if (values.mobile.length === 10) {
      setUserDetail({ msdin: values.mobile });
      console.log(userDetail);
    }
  };

setUserDetail({ msdin: values.mobile });在这里,我正在更新我的userdetail.

并尝试console the update value like this

console.log(userDetail);.it 当前显示undefined.but 预期输出是{msdin:'9999999999'}(或在输入字段中输入的任何内容)

标签: javascriptreactjsreact-hooks

解决方案


状态设置器setUserDetail是异步的,这意味着新的状态值不会立即可用。

要查看状态更新是否useEffect像这样使用:

  useEffect(() => {
    console.log('useEffect -> UserDetail : ', userDetail);
  }, [userDetail]);

推荐阅读