私は反応で非常に単純なコンポーネントの不透明なトランジションを実行しようとしています。 ReactCSSTransitionグループを使用してこれを実行していますが、正しく設定したと思っていますが、動作していないようです。ReactCSSTransitionGroupアドオンを使用したReact Router v4コンポーネントの移行
let {BrowserRouter,Link,Route} = ReactRouterDOM;
let Router = BrowserRouter;
let ReactCSSTransitionGroup = React.addons.CSSTransitionGroup;
class Artwork extends React.Component {
render() {
return (
<div>
<h3>Art</h3>
</div>
);
}
}
class Home extends React.Component {
render() {
return (
<h1>Home</h1>
);
}
}
class User extends React.Component {
render() {
return (
<div className="row">
<div className="col-md-4">
<h3>The User Page</h3>
<p>User ID:</p>
<li><Link to="/user/artwork">Artwork</Link></li>
</div>
<div className="col-md-8">
<Route path="/user/artwork" component={Artwork}/>
</div>
</div>
);
}
}
class App extends React.Component {
render() {
return (
<Router>
<div className="container">
<div className="row">
<div className="col-xs-10 col-xs-offset-1">
<ul>
<li><Link to="/user">User</Link></li>
<li><Link to="/home">Home</Link></li>
</ul>
</div>
</div>
<hr/>
<div className="row">
<div className="col-xs-10 col-xs-offset-1">
<ReactCSSTransitionGroup
transitionName="example"
transitionAppear={true}
transitionAppearTimeout={1500}>
<Route path="/" exact component={Home}/>
<Route path="/home" exact component={Home}/>
<Route path="/user" component={User}/>
</ReactCSSTransitionGroup>
</div>
</div>
</div>
</Router>
);
}
}
ReactDOM.render(
<App />,
document.getElementById('root')
);
CSS
.example-appear {
opacity: 0.01;
}
.example-appear.example-appear-active {
opacity: 1;
transition: opacity 1500ms ease-in;
}
は、あなたがあなたのルーティングされたコンポーネントのそれぞれをラップする必要があなたに
あなたcodepenに私がクリックしたときに、サブルートコンポーネントのアートワークは「二回アニメーション化することを気づいた、例えばいただきありがとうございます。この現象が発生するのを止める方法はありますか?あなたはそれがクリックされたときに一度アニメーション化したいだけです。 – W9914420
私のために働く正しい私はアニメーションをクリックすることを意味します、サブルートでそのアニメーションをしたくない場合、ちょうどアートワークルートのTransitionedPage機能を削除し、アニメーション化しません。 :) –
「ホーム」または「ユーザー」リンクのいずれかを再度クリックして、その特定のコンポーネントが読み込まれてアニメーションが再び再生されないことを確認するにはどうすればよいでしょうか。ただし、リンクを何度も押し続けると、「アートワーク」コンポーネントが継続的に再生されますが、これは正しい動作ですか?もしそうなら、あなたはそれをルートリンクのように振る舞うように書き直すでしょうか? tnx – W9914420