Я пытаюсь сделать анимацию, которая срабатывает при изменении выхода реактивного маршрутизатора.
Первоначальный стиль применяется opacity: 0
, однако Переход никогда не попадает в стиль opacity: 1
.
Вот
const duration = 500;
const defaultStyle = {
transition: `opacity ${duration}ms ease-in-out`,
opacity: 0,
};
const transitionStyles: any = {
enter: {
opacity: 'opacity: 0'
},
entered: {
color: 'black',
opacity: 1,
},
};
export default () => {
return (
<div>
<Transition
key={DynamicPage.key}
timeout={duration}>
{(state) => (
<div style={{
...defaultStyle,
...transitionStyles[state]
}}>
<Route path="*" component={DynamicPage} />
</div>
)}
</Transition>
</div>
);
};
Я пытался позволить компоненту DynamicPage увеличивать значение ключа, чтобы вызвать изменение. Первоначальный компонент отображается, но эта упаковка нарушает содержимое DynamicPage).
Если уместно, вот код DynamicPage
class DynamicPage extends React.PureComponent {
public static key = 0;
public render() {
DynamicPage.key++;
return (
<PageContainer>
{({ Kind }: any) => {
const Page = pages[Kind];
return <Page {...this.props}/>;
}}
</PageContainer>
);
}
}