ReactCSSTransitionGroup - как переопределить componentWillLeave(обратный вызов)?

Я пытаюсь получить доступ к componentWillMount зацепить, чтобы затемнить элемент canvas, который не является потомком переходного <Home> составная часть. (Анимация <Home> сам работает как положено.)

<ReactCSSTransitionGroup transitionName="screenTrans" transitionEnterTimeout={200} transitionLeaveTimeout={3000}>
    <Home key={'home'} />
</ReactCSSTransitionGroup>

Home.js:

export default class Home extends React.Component {
    ...
    componentWillLeave( callback ) {
        console.log( "am i getting called?" ) // no!
        this.fadeOutCanvas();
    }
}

Что мне не хватает? Спасибо...

1 ответ

Довольно поздний ответ, но сейчас я столкнулся с той же проблемой.

Дело в том, что вы используете ReactCSSTransitionGroup который НЕ вызывает обратные вызовы, такие как ReactTransitionGroup (другой компонент). Проблема в том, что вам нужен компонент, который выполняет обе функции (устанавливает css и вызывает ваш обратный вызов)

Из документов:

При использовании ReactCSSTransitionGroup ваши компоненты не смогут получать уведомления о завершении перехода или выполнять более сложную логику вокруг анимации. Если вы хотите более детализированный элемент управления, вы можете использовать API-интерфейс ReactTransitionGroup более низкого уровня, который предоставляет ловушки, необходимые для выполнения пользовательских переходов.

Проверил и ничего не смог найти, поэтому напишу свой компонент и, надеюсь, с открытым исходным кодом!

Другие вопросы по тегам