让我们假设一些类似的东西:
handleClick = () => {
dispatchThunkAction(this.someMethod),
}
someMethod = () => {
//do something
}dispatchThunkAction触发http请求。一旦完成,thunk操作就会回调传递给它的someMethod。
如果卸载发生在http (或任何其他异步操作)调用过程中,是否应该在componentWiUnmount中将someMethod设置为null?
所以,就像
componentWillUnmount() {
this.someMethod = null;
}以便垃圾收集器知道它可以立即将其拾取。
发布于 2019-02-16 01:53:22
将方法设置为null无济于事,但您可以创建一个名为_isMounted的实例变量,在componentDidUnmount中将其设置为false,并检查此变量是否为true,然后再在someMethod中执行任何操作。
class App extends React.Component {
_isMounted = true
handleClick = () => {
dispatchThunkAction(this.someMethod)
}
someMethod = () => {
if (!this._isMounted) {
return
}
//do something
}
componentDidUnmount() {
this._isMounted = false
}
// ...
}https://stackoverflow.com/questions/54714599
复制相似问题