शायद रूट रूट को कॉन्फ़िगर करते समय आप onEnter और onChange कॉलबैक का लाभ उठा सकते हैं।
ऑनलाइन कॉलबैक पर आप प्रारंभिक मार्ग पथ रिकॉर्ड कर सकते हैं। ऑन चेंज कॉलबैक में आप cur/next रूट पथ की तुलना कर सकते हैं, रिकॉर्ड किए गए पथ इतिहास की जांच कर सकते हैं, और पथ रिकॉर्ड कर सकते हैं। इसके बाद से जब आप मार्ग परिवर्तन हर बार मार्ग पथ की जांच और तुलना कर सकते हैं, तो आप किसी भी परिपत्र लिंक को रोक सकते हैं।
यदि आप रेडक्स का उपयोग करते हैं, तो सभी घटक की स्थिति को सहेजने के बारे में, संपूर्ण ऐप स्थिति ऑब्जेक्ट, रेडक्स स्टोर में सहेज सकती है।
यदि आप छुट्टी से पहले उस समय घटक की स्थिति को सहेजना चाहते हैं, तो आप save component state
componentWillUnmount
में कार्रवाई भेज सकते हैं, और componentWillMount
में स्थिति पुनर्प्राप्त कर सकते हैं।
यहाँ एक टुकड़ा है:
var rootRoute = {
path: '/',
onEnter: enter,
onChange: change,
component: MyApp,
indexRoute: { component: Home },
childRoutes: [
LoginRoute,
...
{path: 'home', component: Home},
{
path: '*',
component: NotFound
}
]
};
function enter (next) {
// pathStore record all navigation history
pathStore.record(next.location.pathname);
}
function change (cur, next, c) {
// when hit cur path links in nav, pathname is same, key is different.
if (cur.location.pathname !== next.location.pathname) {
...
}
}
एक USECASE स्क्रॉल स्थिति बनाए रखने और पिछले सटीक राज्य के लिए वापस पाने के लिए एक उलट संक्रमण करना है (वहाँ, इनपुट राज्यों की तरह, कई अंतर्निहित छिपा राज्य कर रहे हैं स्थिति स्क्रॉल, आदि .. जो प्रतिक्रिया द्वारा कवर नहीं हैं) – gre