【发布时间】:2020-12-28 01:42:56
【问题描述】:
我正在使用 useState() 钩子,我发现我的应用程序有一个错误,因为设置值是异步的。所以如果我有这样的代码:
const [data, setData] = useState([])
useEffect(() => {
const getData = async () => {
const res = await fetchData()
console.log(data); // []
setData(res.data.hits);
console.log(res.data.hits); // Array full of objects
console.log(data); // Still []
}
getData()
}, [fetchData]);
只有在实际设置了新状态后,我才能执行一些特定的逻辑?
【问题讨论】:
-
即使它不是异步的,
data仍然用const声明 - 它不会改变 -
你想要什么样的“执行某事”?副作用,例如 API 调用?还是您想更改渲染的内容或其他内容?
-
添加观看
data的新效果 -
为什么不使用条件渲染?一旦数据可用,它就会执行。
-
@CertainPerformance setState 方法在状态更新时有回调。我正在寻找类似的东西。
标签: javascript html reactjs typescript