当 mobx-state-tree 可观察地图大小发生变化时,我正在尝试更新我的道具。这是我的尝试:
componentDidUpdate(prevProps) {
// Typical usage (don't forget to compare props):
if (this.props.mobxStore.lengthOfEnabledColumns !== prevProps.mobxStore.lengthOfEnabledColumns) {
this.runThisFunction()
}
}
然而,componentDidUpdate 并没有检测到 mobx-state-tree 的变化。
React 组件具有适当的观察者注入。
const connectedComponent = inject('mobxStore')((connect(mapStateToProps, mapDispatchToProps)(ExampleComponent)));
render 函数也有一个观察者:
render() {
const { mobxStore} = this.props;
return (
<Observer>{
() =><React.Fragment>
<h1>Example</h1>
</React.Fragment>
}
</Observer>
);
}
}
问题:如何让 React 组件识别 mobx-state-tree 更改,并在 render() 块之外运行 React.Component 函数 (this.runThisFunction())?我想我可以尝试添加快照或补丁,但我不知道如何将它直接实现到 React.Component 级别的函数上,因此它无法监听 React.Component 状态更改。