用 AbortController 取消 fetch 请求时,组件卸载后的状态更新怎么处理
在单页应用里,用户快速切换路由或反复触发搜索时,经常会出现一个组件已经卸载,但之前发出的 fetch 请求才刚返回,然后回调里执行 setState 导致 React 报“Can't perform a React state update on an unmounted component”警告。这个问题在搜索框实时联想、Tab 切换、详情页快速跳转等场景里很常见。很多人第一反应是用一个布尔变量标记组件是否挂载,在 useEffect 清理函数里改掉它,但这种方式只是屏蔽了警告,请求依然占用网络和内存。更合理的做法是用 AbortController 真正取消 fetch,同时配合请求标识避...