首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ReactCSSTransitionGroup无作用

ReactCSSTransitionGroup无作用
EN

Stack Overflow用户
提问于 2016-02-01 20:12:14
回答 2查看 365关注 0票数 0

我已经集成了ReactCSSTransitionGroup,但没有获得动画效果。如能提供以下结构错误的提示,将不胜感激:

代码语言:javascript
复制
import { Router, Route, IndexRoute, browserHistory } from 'react-router'
import ReactCSSTransitionGroup = require('react-addons-css-transition-group')

...
return (
...
    <ReactCSSTransitionGroup
       transitionName = "mainpage"
       transitionEnterTimeout={ 500 }
       transitionLeaveTimeout={ 300 }>
       <Router key="router" history={ browserHistory }>
          <Route key="/" path="/" component={ App }>
             <IndexRoute key="MainTiles" component={ MainTiles } />
             <Route key="Page1" path="page1" component={ Page1 } />
          </Route>
       </Router>
    </ReactCSSTransitionGroup>
...
)

我的css是:

代码语言:javascript
复制
.mainpage-enter { opacity: 0; transition: opacity 100ms ease-in; }
.mainpage-enter.mainpage-enter-active { opacity: 1; transition: opacity 100ms ease-in; }
.mainpage-leave { opacity: 1; transition: opacity 100ms ease-in; }
.mainpage-leave.mainpage-leave-active { opacity: 0; transition: opacity 100ms ease-in; }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-01 21:13:01

没关系,我找到了一些有用的示例代码:

代码语言:javascript
复制
class App extends Component<any, any> {
    render() {
        return (
            <div>
        <ReactCSSTransitionGroup
            component="div"
            transitionName="mainpage"
            transitionEnterTimeout={500}
            transitionLeaveTimeout={500}
            >
            { 
                React.cloneElement(this.props.children, {
                    key: this.props.location.pathname
                }) 
            }
        </ReactCSSTransitionGroup>

            </div>
        )
    }
}

显然,主要要求是直接亲子关系,并为动画组件注入一把钥匙。

票数 0
EN

Stack Overflow用户

发布于 2016-02-01 20:57:47

我认为您希望拥有转换生命周期方法的组件需要是ReactCSSTransitionGroup的直接子组件。

例如:

代码语言:javascript
复制
<Router key="router" history={ browserHistory }>
    <Route key="/" path="/" component={ App }>
        <IndexRoute key="MainTiles" component={ MainTiles } />
        <Route key="Page1" path="page1" component={ Page1 } />
    </Route>
</Router>

内部App.js

代码语言:javascript
复制
class App extends Component {
    render() {
        return (
            <div>
                <ReactCSSTransitionGroup
                    component="div"
                    transitionName="example"
                    transitionEnterTimeout={500}
                    transitionLeaveTimeout={500}
                >
                    {React.cloneElement(this.props.children, {
                        key: this.props.location.pathname,
                    })}
                </ReactCSSTransitionGroup>
            </div>
        );
    }
 }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35139455

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档