取消 componentWillUnmount 上的 mobx 自动运行功能
Canceling mobx autorun function on componentWillUnmount
我的 componentDidMount 中有以下自动运行功能:
componentDidMount() {
this.autoUpdate = autorun(() => {
this.setState({
rows: generateRows(this.props.data)
})
})
}
问题是另一个组件在组件未安装时更改 this.props.data - 因此我在未安装的组件上收到 .setState 警告。
所以我想在组件卸载后删除自动运行。
我试过:
componentWillUnmount() {
this.autoUpdate = null
}
但自动运行功能仍然触发。有没有办法在组件不再安装后取消 mobx 自动运行?
autorun
returns 一个处理器函数,你需要调用它来取消它。
class ExampleComponent extends Component {
componentDidMount() {
this.autoUpdateDisposer = autorun(() => {
this.setState({
rows: generateRows(this.props.data)
});
});
}
componentWillUnmount() {
this.autoUpdateDisposer();
}
render() {
// ...
}
}
我的 componentDidMount 中有以下自动运行功能:
componentDidMount() {
this.autoUpdate = autorun(() => {
this.setState({
rows: generateRows(this.props.data)
})
})
}
问题是另一个组件在组件未安装时更改 this.props.data - 因此我在未安装的组件上收到 .setState 警告。
所以我想在组件卸载后删除自动运行。
我试过:
componentWillUnmount() {
this.autoUpdate = null
}
但自动运行功能仍然触发。有没有办法在组件不再安装后取消 mobx 自动运行?
autorun
returns 一个处理器函数,你需要调用它来取消它。
class ExampleComponent extends Component {
componentDidMount() {
this.autoUpdateDisposer = autorun(() => {
this.setState({
rows: generateRows(this.props.data)
});
});
}
componentWillUnmount() {
this.autoUpdateDisposer();
}
render() {
// ...
}
}