const _id = match.params.id;
const response = await api.get("/roleidindex", {
params: {
_id
}
})
console.log (response.data); //correct object
setRole(response.data);
console.log (role); //{}
在我的代码中,我有这段文字,并且由于注释显示了来自请求的响应,所以很好,但是当我将状态设置为值时,状态保持与初始状态相同。顺便说一下,这些都在useEffect方法内部。
调用状态更改时,组件不会立即更新-而是对更改进行批处理,以便所有排队的更改都立即完成,然后进行重新呈现。
使用钩子,role
代码中的变量将永远不会接收更新后的数据,因为必须再次调用整个组件才能使更新后的值存在-仅在下一次调用该组件时,role
才会分配从中获取的更新值。useState
。
如果要记录数据(假设数据开始为空),则应在主要组件主体中进行记录:
const [role, setRole] = useState(null);
if (role) {
console.log('Got data', role);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句