为了账号安全,请及时绑定邮箱和手机立即绑定

设置状态方法似乎不执行任何操作。为什么?

设置状态方法似乎不执行任何操作。为什么?

慕码人2483693 2022-08-18 15:59:10
const _id = match.params.id;const response = await api.get("/roleidindex", {  params: {    _id  }})console.log (response.data); //correct objectsetRole(response.data);console.log (role); //{}在我的代码中,我有这段文本,并且由于注释显示请求的响应很好,但是当我将状态设置为值时,状态与其初始状态相同。顺便说一句,这一切都在useEffect方法中。
查看完整描述

1 回答

?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

调用状态更改时,组件不会立即更新 - 而是对更改进行批处理,以便一次完成所有排队的更改,然后重新呈现。


使用钩子,代码中的变量无论如何都不会收到更新的数据,因为必须再次调用整个组件才能使更新的值存在 - 只有在下次调用组件时,才会为组件分配从 中获取的更新值。roleroleuseState


如果要记录数据,假设它开始时为空,则应在主组件正文中执行此操作:


const [role, setRole] = useState(null);

if (role) {

  console.log('Got data', role);

}


查看完整回答
反对 回复 2022-08-18
  • 1 回答
  • 0 关注
  • 66 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号