【发布时间】:2017-03-13 15:23:17
【问题描述】:
我正在尝试在我的 React / Redux 应用程序中设置路由更改的动画转换。我一直在使用 SO 上的示例和官方教程作为指南,但到目前为止只能使淡入效果在第一次加载时起作用。更改路线时,组件显示时没有任何动画进出。
我是否遗漏了一些明显的东西 - 这是尝试为内容输入/输出动画时遵循的最佳路径吗?
/*
** Loop through ACF components to layout page
*/
blocks = () => {
if (this.props.pages.pages[0]) {
return this.props.pages.pages[0].acf.components &&
this.props.pages.pages[0].acf.components.map((block, index) => {
let Component = componentMapping[block.acf_fc_layout];
return <Component key={index} data={block} id={index} />;
});
}
};
/*
** Render page on state change
*/
render() {
return (
<div className="App">
<NavContainer />
<ReactCSSTransitionGroup
transitionName="example"
transitionAppear={true}
transitionAppearTimeout={500}
transitionEnterTimeout={500}
transitionLeaveTimeout={300}
>
{this.blocks()}
</ReactCSSTransitionGroup>
</div>
);
}
我包含的css如下:
.example-enter {
opacity: 0.01;
}
.example-enter.example-enter-active {
opacity: 1;
transition: opacity 500ms ease-in;
}
.example-leave {
opacity: 1;
}
.example-appear {
opacity: 0.01;
}
.example-appear.example-appear-active {
opacity: 1;
transition: opacity .5s ease-in;
}
.example-leave.example-leave-active {
opacity: 0.01;
transition: opacity 300ms ease-in;
}
感谢任何人提供的任何帮助。提前致谢!
【问题讨论】:
-
仅凭您提供的代码很难判断。我想你已经包含了所有必要的 CSS 来“淡出”和“淡入”?
-
抱歉!上面添加的css
-
这可能是因为您在
<ReactCSSTransitionGroup/>中使用了一个函数调用... 只使用blocks = this.props.pages.pages[0].acf.components.map((block, index) => {...}尝试一下,看看您是否有运气 -
感谢您的建议,不幸的是,我在没有函数调用的情况下进行了测试,结果相同。
标签: javascript reactjs animation redux