Замена MobX React для componentWillReact() для запуска анимации макета

#react-native #mobx #mobx-react #layout-animation

#react-native #mobx #mobx-реагирует #макет-анимация

Вопрос:

Когда-то рекомендовалось использовать componentWillReact() для запуска анимации макета в ответ на изменения наблюдаемых значений, например:

 componentWillReact() {
        LayoutAnimation.configureNext(LayoutAnimation.Presets.spring);
    }
  

Однако, componentWillReact() была удалена в mobx-react@6.

Какая рекомендуемая замена? Мой класс observable ничего не должен знать о своем наблюдателе, поэтому я ищу аналогичное решение, основанное на событиях.

Спасибо!

Ответ №1:

Если я правильно понял ваш вопрос, и у вас есть возможность использовать функциональный компонент, попробуйте useLayoutEffect перехват вместо componentWillReact , объявите наблюдаемое значение как его deps и вызовите LayoutAnimation.configureNext обратный вызов перехвата, вот так:

 useLayoutEffect(() => {
  LayoutAnimation.easeInEaseOut();
}, [store.something]);