Как обновить внутренние функции компонента React, когда Mobx-State-Tree изменяет состояние? - PullRequest
0 голосов
/ 06 ноября 2019

Я пытаюсь обновить свои реквизиты, когда изменяется размер видимой карты дерева состояний 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.

...