在React中,直接在异步回调中获取反模式吗?
setState可以在组件卸载后调用吗?
const Component = () => {
const [state, setState] = useState("");
const onClick = e => {
// What if the component unmounts before setState?
fetch("url").then(response => response.json()).then(json => setState(json))
}
return <button onClick={onClick}></button>
}发布于 2020-11-01 16:28:33
如果需要调用api并在组件挂载时获取数据,则使用useEffect
如果要在onClick事件上调用它,请使用useCallback。
如果组件在setState之前卸载,它不会破坏您的应用程序,但是在卸载组件中调用set状态时,会在控制台中得到一个错误。为了避免这种情况,可以在组件卸载时取消api调用。
https://stackoverflow.com/questions/64634095
复制相似问题