2016-03-22 13 views
5

के साथ प्रारंभिक मार्ग सेट करना मुझे प्रतिक्रिया-राउटर (रेडक्स के साथ संयोजन में) के साथ प्रारंभिक मार्ग स्थापित करने के बारे में एक प्रश्न है। मेरे पास कुछ रेडक्स स्टोर से राज्य पर आधारित कुछ मार्ग हैं और मुझे उपयोगकर्ता लोड को पृष्ठ लोड पर एक निश्चित मार्ग पर हमेशा रीडायरेक्ट करने की आवश्यकता है।प्रतिक्रिया-राउटर

<Provider store={store}> 
    <Router history={history}> 
     <Route path="/" component={App} onEnter={redirectToInitialRoute}> 
      <Route path="/send" component={OverviewPage} /> 
      <Route path="/thanks" component={ConfirmPage} /> 
      <Route path="/:categoryIdentifier" component={CategoryPage} /> 
     </Route> 
    </Router> 
</Provider> 

मैं अपने रूट रूट करने के लिए onEnter समारोह जोड़ दिया है:

तरह से मेरी मार्गों वर्तमान में स्थापित कर रहे हैं इस प्रकार है। मैंने ऐसा इसलिए किया है क्योंकि मुझे हमेशा पृष्ठ लोड पर रीडायरेक्ट करने की आवश्यकता है, इस बात से स्वतंत्र है कि उपयोगकर्ता किस ऐप पर ऐप दर्ज कर रहा है। जिस तरह से मेरी onEnter समारोह सेटअप है इस प्रकार है:

function redirectToInitialRoute (nextState, replace) { 
    if (condition) { 
     replace('/send'); 
    } 
    else if (anotherCondition) { 
     replace('/thanks'); 
    } 
} 

हालांकि क्या इस सेटअप के साथ होता है, (उदाहरण के लिए) 'anotherCondition' पूरी हो जाती है और '/ धन्यवाद' पर रीडायरेक्ट। चूंकि ऑन रूट रूट रूट पर पारित किया जाता है, इसलिए रीडायरेक्ट ToInitialRoute फिर से ट्रिगर किया जाता है। चूंकि 'दूसरा कंडीशन' अभी भी सत्य है, फिर भी रीडायरेक्ट फिर से रीडायरेक्ट लूप का कारण बनता है।

मैं सोच रहा था कि इस मुद्दे को हल करने का सबसे अच्छा तरीका क्या होगा? कोई भी मदद बहुत ही सराहनीय होगी। अग्रिम में धन्यवाद!

उत्तर

5

सूचकांक मार्ग जोड़ने और फिर माउंट पर रीडायरेक्ट करने के बारे में कैसे?

componentDidMount: function() { 
    if (condition) { 
     browserHistory.push('/here'); 
    } else { 
     browserHistory.push('/there'); 
    } 
} 
:

<Provider store={store}> 
    <Router history={history}> 
     <Route path="/" component={App} onEnter={redirectToInitialRoute}> 
      <IndexRoute component={Welcome} />   
      <Route path="/send" component={OverviewPage} /> 
      <Route path="/thanks" component={ConfirmPage} /> 
      <Route path="/:categoryIdentifier" component={CategoryPage} /> 
     </Route> 
    </Router> 
</Provider> 
फिर अपने में आपका स्वागत है घटक में