让我们假设这样的事情:
handleClick = () => {
dispatchThunkAction(this.someMethod),
}
someMethod = () => {
//do something
}
dispatchThunkAction
触发http请求。
完成后,重击动作会回调传递给它的someMethod
。
应该将{{1}中的someMethod
设置为null
,以防在HTTP(或任何其他异步操作)调用过程中发生卸载的情况?
所以,像
componentWiUnmount
以便垃圾收集器知道它可以立即将其捡起。
答案 0 :(得分:2)
将方法设置为null
无济于事,但是您可以创建一个名为例如的实例变量。 _isMounted
,您在false
中设置为componentDidUnmount
,并在true
中执行任何操作之前,请检查此变量是否为someMethod
。
class App extends React.Component {
_isMounted = true
handleClick = () => {
dispatchThunkAction(this.someMethod)
}
someMethod = () => {
if (!this._isMounted) {
return
}
//do something
}
componentDidUnmount() {
this._isMounted = false
}
// ...
}