警告信息:
Can't perform a React state update on an unmounted component.
This is a no-op, but it indicates a memory leak in your application.
To fix, cancel all subscriptions and asynchronous tasks in a useEffect cleanup function.
情景
使用路由跳转到新页面(target="_blank")
ReactDOM.unmountComponentAtNode(document.getElementById(‘root’))卸载根组件时出现
原因:
卸载组件之前要把对应的state这些清空,不然可能会造成内存泄露
解决:
hooks版本例子
// 关键代码
import {useState,useEffect} from 'react'
function App(){
const [a, setA] = useState=({xx: []})
useEffect(()=>{
// 返回的这个回调相当于生命周期的componnentWillUnmount
return ()=>{
setA(null)
}
}, [])
}