2016-06-09 13 views
1

Ich möchte nur glatte Übergänge zwischen allen Seiten hinzufügen. Ich habe ReactCSSTransitionGroup verwendet und das Hauptlayout umgebrochen. Genau soGlatte Übergänge zwischen den Seiten - Reactjs

class MainLayout extends Component { 
    render() { 
    return (
     <div> 
     <TopNav /> 
      <ReactCSSTransitionGroup 
      transitionName="example" 
      transitionEnterTimeout={500} 
      transitionLeaveTimeout={300} 
      transitionAppear={true} 
      transitionAppearTimeout={500} 
      > 
      {/* Content */} 
      { this.props.content } 
      </ReactCSSTransitionGroup> 
     <BottomNav /> 
     </div> 
    ); 
    } 
} 

Hier ist meine Route Konfiguration.

import React from 'react'; 
    import { mount } from 'react-mounter'; 
    import MainLayout from './layouts/MainLayout.jsx'; 
    import Home from './home/Home.jsx'; 

FlowRouter.route('/', { 
    name: 'home', 
    action() { 
    mount(MainLayout, { content: (<Home />) }); 
    setTitle(); 
    }, 
}); 

Jetzt funktioniert es gut, wenn die erste Ladung. Der Übergang funktioniert jedoch nicht, wenn Sie zu anderen Seiten navigieren. Wie kann ich das lösen?

+0

können Sie Ihre Route Konfiguration teilen? –

+0

@GiladArtzi Ich benutze Meteor und Flow-Router. Beschreibung aktualisiert – Janath

Antwort

1

Sie sollten die Kinder machen, indem sie das Klonen und es einen Schlüssel geben, wie diese

{React.cloneElement(this.props.children, { 
    key: this.props.location.pathname 
})} 

Nach der example Komponente von reagieren-Router

+0

So dass ReactCSSTransitionGroup in der Lage sein wird, den Übergang statt direkt zwischen Seiten zu wechseln –

+0

Gave eindeutige Schlüssel für die untergeordneten Elemente mit Knoten-UUID-Paket. Du hast meinen Tag gerettet! Vielen Dank – Janath

Verwandte Themen