Я пытаюсь обновить свои реквизиты, когда изменяется размер видимой карты дерева состояний mobx. Это моя попытка:
componentDidUpdate(prevProps) {
// Typical usage (don't forget to compare props):
if (this.props.mobxStore.lengthOfEnabledColumns !== prevProps.mobxStore.lengthOfEnabledColumns) {
this.runThisFunction()
}
}
Однако componentDidUpdate не обнаруживает изменения в дереве состояний mobx.
Компонент React имеет правильную инъекцию Observer.
const connectedComponent = inject('mobxStore')((connect(mapStateToProps, mapDispatchToProps)(ExampleComponent)));
Функция рендеринга также имеет наблюдателя:
render() {
const { mobxStore} = this.props;
return (
<Observer>{
() =><React.Fragment>
<h1>Example</h1>
</React.Fragment>
}
</Observer>
);
}
}
Вопрос: Как получить компонент React для распознавания изменения дерева состояний mobx и запустить функцию React.Component (this.runThisFunction ()) снаружиблока рендеринга ()? Я думаю, что мог бы попытаться добавить снимок или патч, но я не знаю, как внедрить его непосредственно в функцию уровня React.Component, чтобы он не мог прослушивать изменения состояния React.Component.