javascript - 为什么从状态单击按钮时不显示更新值?
问题描述
你能告诉我如何从 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'}
(或在输入字段中输入的任何内容)
解决方案
状态设置器setUserDetail
是异步的,这意味着新的状态值不会立即可用。
要查看状态更新是否useEffect
像这样使用:
useEffect(() => {
console.log('useEffect -> UserDetail : ', userDetail);
}, [userDetail]);
推荐阅读
- java - 如何使用附加到 Elastic Beanstalk 环境的 RDS 环境属性 - Java
- python - 关于 tkinter scrolledtext
- swift - 我可以在 swift Moya 中请求二维关联数组吗?
- java - 无效的 XML:第 454 行错误:在 CDATA 部分中发现了无效的 XML 字符(Unicode:0x8)
- java - 仅在 Pixel 5 设备中未打开相机和图库
- python - 这是一个错误还是我错过了什么?
- php - 我无法获得以前的 $_GET['variable'] 我如何获得它?
- spring - Spring,关于 Web 开发中多对多查询(与额外列关联)的问题
- django-views - 通过 Django 中的视图注册用户 - allauth
- reactjs - Webpack 碰到文件后会不断“编译成功”和“正在编译”