Mih*_*šič 5 javascript reactjs mobx mobx-react
我的componentDidMount中有以下自动运行功能:
componentDidMount() {
this.autoUpdate = autorun(() => {
this.setState({
rows: generateRows(this.props.data)
})
})
}
Run Code Online (Sandbox Code Playgroud)
问题是当组件未挂载时,另一个组件会更改this.props.data - 因此我在未安装的组件上收到.setState警告.
所以我想在组件卸载后删除自动运行.
我试过做:
componentWillUnmount() {
this.autoUpdate = null
}
Run Code Online (Sandbox Code Playgroud)
但是自动运行功能仍会触发.一旦组件不再安装,有没有办法取消mobx自动运行?
autorun 返回您需要调用的处理器函数以取消它.
class ExampleComponent extends Component {
componentDidMount() {
this.autoUpdateDisposer = autorun(() => {
this.setState({
rows: generateRows(this.props.data)
});
});
}
componentWillUnmount() {
this.autoUpdateDisposer();
}
render() {
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1312 次 |
| 最近记录: |