Ich versuche, eine sehr einfache Komponente Opazität Übergang in reagieren. Ich benutze die ReactCSSTransition-Gruppe, um dies auszuführen, und ich glaube, dass ich die Dinge richtig eingerichtet habe, aber es scheint nicht zu funktionieren. Ich würde auf diese jede Hilfe dankbar bitte unter meinem codepen sehen:React Router v4 Komponente Übergang mit ReactCSSTransitionGroup Add-on
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;
}
Danke
Danke für das Beispiel, in Ihrem codepen bemerkte ich, dass die Komponente Unter Route ‚Kunstwerk‘ zweimal beseelt, wenn darauf geklickt wird. Gibt es eine Möglichkeit, dieses Verhalten zu verhindern. Sie möchten nur, dass das eine Mal animiert wird, wenn darauf geklickt wird. – W9914420
für mich funktioniert es richtig ich meine, klicken Sie darauf animiert, auch wenn Sie nicht möchten, dass die Animation auf Unterroute, nur entfernen TransitionedPage-Funktion in Artwork Route und es wird nicht animieren. :) –
Beachten Sie, wenn Sie erneut auf die "Home" - oder "User" -Links klicken, sobald diese bestimmte Komponente geladen wurde, dass die Animation nicht erneut abgespielt wird. Die "Artwork" -Komponente wird jedoch kontinuierlich wiederholt, wenn Sie den Link immer wieder drücken. Ist dies das richtige Verhalten? Wenn ja, wie würdest du es so umschreiben, dass es wie die Wurzel-Links funktioniert? tnx – W9914420