设置状态方法似乎什么都不做.为什么?


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);
}

相关内容

  • 没有找到相关文章

最新更新