2016-03-07 9 views
9

मेरे पास ReactCSSTransitionGroup ठीक काम कर रहा है (मुझे लगता है), नया घुड़सवार घटक अपनी सभी महिमा में fades।ReactCSSTransitionGroup केवल नए घटक में एनिमेटिंग के साथ अच्छा है?

समस्या

कि घटक की जगह किया जा रहा है सिर्फ अचानक गायब हो जाता है, मेरे लिए एक समस्या है क्योंकि अंत में मैं चाहूँगा कि में और व्यूपोर्ट के बाहर मेरा घटकों संक्रमण ...

मैं किसी भी देखने के लिए नहीं लग रहे है छोड़ने वाले घटक को स्पष्ट रूप से गायब होने का तरीका बताए जाने का तरीका।

क्या मुझे कुछ याद आ रहा है या ReactCSSTransitionGroup केवल आने वाले घटक को एनिमेट करने में सक्षम है?

अद्यतन

नीचे कोड:

import React from "react"; 
import ReactDOM from "react-dom"; 
import { Router, Route, IndexRoute, hashHistory, Link } from "react-router"; 
import ReactCSSTransitionGroup from "react-addons-css-transition-group"; 


class PageOne extends React.Component { 
    render() { 
    return (
     <ReactCSSTransitionGroup transitionName="example" transitionAppear={true} transitionAppearTimeout={500} transitionEnterTimeout={500} transitionLeaveTimeout={500}> 
     <div> 
      HI FROM PAGE ONE<br /> 
      <br /> 
      <Link to="two">Take me to Page Two</Link> 
     </div> 
     </ReactCSSTransitionGroup> 
    ); 
    } 
} 
class PageTwo extends React.Component { 
    render() { 
    return (
     <ReactCSSTransitionGroup transitionName="example" transitionAppear={true} transitionAppearTimeout={500} transitionEnterTimeout={500} transitionLeaveTimeout={500}> 
     <div> 
      HELLO FROM PAGE TWO<br /> 
      <br /> 
      <Link to="/">Go back to Page One</Link> 
     </div> 
     </ReactCSSTransitionGroup> 
    ); 
    } 
} 


const app = document.getElementById('app'); 
ReactDOM.render(
    <Router history={hashHistory}> 
    <Route path="/" component={PageOne}></Route> 
    <Route path="two" component={PageTwo}></Route> 
    </Router>, 
app); 

और सीएसएस:

.example-enter { 
    opacity: 0.01; 
} 
.example-enter.example-enter-active { 
    opacity: 1; 
    transition: opacity 500ms ease-in; 
} 
.example-leave { 
    opacity: 1; 
} 
.example-leave.example-leave-active { 
    opacity: 0.01; 
    transition: opacity 300ms ease-in; 
} 
+0

स्पष्टीकरण बताते हैं आप, दिखाई पर बदलाव हो सकता है दर्ज करें और भी छोड़ देते हैं। अगर आपको यहां और मदद की ज़रूरत है, तो क्या आप कुछ कोड साझा कर सकते हैं? – wintvelt

+0

यह देखने के लिए कि मैं किसके लिए जा रहा हूं, कम से कम कोड के साथ पोस्ट अपडेट किया गया है। उपरोक्त कोड घटक माउंट/अनमाउंट पर/बाहर फीका नहीं है। – Stefan

उत्तर

4

ठीक है ऐसा लगता है कि उन्होंने पहले ही यह काम किया था और मैंने अभी तक इसे अभी तक नहीं खोजा है।

प्रतिक्रिया-राउटर गिट रेपो में उदाहरणों की एक सूची है और भीतर "एनीमेशन" के लिए एक है। यह डेमो दिखाता है कि तत्व को क्लोन करके और कुंजी असाइन करके "पन्ने" को एनिमेट करने के लिए आप ReactCSSTransitionGroup का लाभ कैसे उठा सकते हैं। पर [संक्रमण प्रतिक्रिया] (https://facebook.github.io/react/docs/animation.html)

https://reacttraining.com/react-router/web/example/animated-transitions

2

मैं घटकों के लिए एक bin जो ठीक काम कर रहा है बनाया है घुड़सवार किया जा रहा/अनमाउंट किया। एक नज़र डालें और मुझे बताएं कि क्या यह आपके द्वारा किए जा रहे कार्यों के समान है और अभी भी समस्या को हल करने में सक्षम नहीं है

+0

समस्या का वर्णन करने की कोशिश में यह मेरी गलती हो सकती है। जो मैं वास्तव में प्राप्त करने की कोशिश कर रहा हूं वह ReactCSSTransitionGroup का उपयोग कर पृष्ठों के बीच एक संक्रमण है। – Stefan

+0

एक और सवाल हो सकता है, ReactCSSTransitionGroup कुछ है जिसका उपयोग पृष्ठ संक्रमणों के साथ शुरू करने के लिए किया जाना चाहिए? – Stefan

+0

मैंने कोड को न्यूनतम से नीचे ले लिया, कृपया यह देखने के लिए ऊपर देखें कि मैं क्या कह रहा हूं। घटक माउंट/अनमाउंट पर फीका/आउट नहीं करते हैं। ReactCSSTransitionGroup केवल सूची आइटम जैसी चीजों को बदलने के लिए अच्छा है? क्या मुझे सूची में वस्तुओं जैसे पृष्ठों को आजमाने और संभालने की ज़रूरत है? – Stefan

संबंधित मुद्दे