2016-10-26 8 views
5

मैं एक उन्नत प्रतिक्रिया/रेडक्स ट्यूटोरियल पर परिष्करण कर रहा हूं और पाठ्यक्रम में एक भाग में आया जहां प्रशिक्षक एक मार्ग से लिंक करने के लिए ब्राउज़र हिस्ट्री.push का उपयोग करता है, जैसा कि संदर्भ प्रकार नामक एक स्थिर वर्ग चर बनाने के लिए उपयोग की गई पिछली विधि के विपरीत है और इसे React.PropTypes.blah blah blah जैसे कुछ के बराबर सेट करना।प्रतिक्रिया राउटर - ब्राउज़र इतिहास। पुश वीएस। ContextTypes

ब्राउज़र और इतिहास का उपयोग करने के बीच क्या अंतर है? ब्राउज़र हिस्ट्री.push संदर्भ प्रकारों को स्थापित करने के विरोध में एक प्रोग्रामिक रीरउट के रूप में बहुत आसान लगता है।

धन्यवाद!

उत्तर

0

सुनिश्चित नहीं है कि आपने कौन से ट्यूटोरियल का उपयोग किया था, इसलिए यह अंधेरे में एक शॉट है।

मुझे लगता है कि आप अपने पहले ट्यूटोरियल में https://github.com/reactjs/react-router-redux जैसे कुछ का उपयोग कर रहे हैं जो राउटर स्टेट को अपने रेडक्स स्टेटस से सिंक करते हैं और संदर्भ में राउटर ऑब्जेक्ट रखते हैं। फिर आप कुछ ऐसा कर सकते हैं:

this.context.router.push(location) स्थान परिवर्तन भेजने के लिए यह आपके Redux स्थिति में स्थान परिवर्तन को सहेज लेगा और फिर उस नए मार्ग को लोड करेगा।

पर कोर प्रतिक्रिया रूटर-redux (और अन्य मार्ग पुस्तकालयों का एक बहुत) https://github.com/ReactTraining/history उपयोग करने के लिए नेविगेट मार्गों के इतिहास का प्रबंधन करने के। यह आपको सर्वर ब्राउज़र को प्रस्तुत करने के लिए हैशहैतिहासिक (index.html/# पृष्ठ-एक) या स्मृति इतिहास यानी वापस आने के लिए, आधुनिक ब्राउज़र में HTML5 इतिहास API का उपयोग करने की अनुमति देता है।

इतिहास पैकेज इसके स्वयं के एपीआई के साथ आता है। और आपके ट्यूटोरियल में browserHistory.push() शायद इतिहास पैकेज के उस एपीआई को सीधे कॉल करता है (see here)।

ऐप के परिणामस्वरूप नया मार्ग लोड होगा, लेकिन शायद आपके रेडक्स स्टोर में सिंक को बाईपास कर देगा।

आपका दूसरा ट्यूटोरियल प्रतिक्रिया-राउटर-रेडक्स का उपयोग नहीं कर सकता है या एक अलग सेटअप है।

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