2017-02-22 4 views
7

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

https://reactnavigation.org/docs/navigators/navigation-prop

यह कहता है कि आप routeName का प्रयोग कर एक स्क्रीन पर नेविगेट करने के लिए, और कहा कि key कि "एक अनूठा मार्गों सॉर्ट करने के लिए इस्तेमाल किया पहचानकर्ता।" इसका क्या मतलब है?

ऐसा लगता है कि मार्ग के नाम को मेरे उदाहरण में दिखाए गए अद्वितीय नहीं होना चाहिए क्योंकि बाहरी टैब और आंतरिक ढेर दोनों का एक ही रूट नाम है। जब आप नेविगेट फ़ंक्शंस का उपयोग करते हैं - तो आप मार्ग का नाम पास करते हैं, सही? यदि ऐसा है तो यह नेस्टेड नेविगेटर में डुप्लिकेट रूट नामों के बीच अंतर कैसे करता है और आप इसके बजाय कुंजी का उपयोग कब करेंगे?

 export TabsNavigator = TabNavigator({ 
      Home: { 
      screen:StackNavigator({ 
       Home: { screen: HomeScreen }, 
      }), 
      }, 
      Profile: { 
      screen: StackNavigator({ 
       Profile: { ProfileScreen }, 
      }), 
      }, 
     }); 

प्रलेखन कुंजी स्थापित करने का एक उदाहरण है, लेकिन मैं क्या यह करने के लिए, या तुम क्यों कोई वास्तविक उपयोग के मामले में यह करना होगा कोशिश कर रहा है के संदर्भ नहीं समझ सकता। https://reactnavigation.org/docs/navigators/navigation-prop

import { NavigationActions } from 'react-navigation' 

const setParamsAction = NavigationActions.setParams({ 
    params: {}, // these are the new params that will be merged into the existing route params 
    // The key of the route that should get the new params 
    key: 'screen-123', 
}) 
this.props.navigation.dispatch(setParamsAction) 

उत्तर

1

आप खोलने/एक स्क्रीन को दिखाने के लिए एक स्क्रीन एक नेविगेटर (जैसे StackNavigator) में निर्दिष्ट के नाम का उपयोग करें। प्रत्येक स्क्रीन में एक अद्वितीय पहचानकर्ता होता है, जो कुंजी है। जैसे यदि आप एक ही प्रकार की दो स्क्रीन खोलते हैं, तो उनके पास एक ही रूट नाम होगा, लेकिन एक अलग कुंजी होगी।

this.props.navigation.dispatch(NavigationActions.setParams(params: {val: 'val'}, key: 'home-1')); के साथ आप कुंजी 'home-1' के साथ स्क्रीन की नेविगेशन स्थिति अपडेट कर सकते हैं। जैसे यदि आपके पास होम स्क्रीन के शीर्ष पर एक स्टैक नॅविगेटर और सेटिंग स्क्रीन है, तो आप सेटिंग्स स्क्रीन से होम स्क्रीन के नेविगेशन स्थिति (this.props.navigation.state.params) को अपडेट कर सकते हैं।

+3

यदि मैं नेविगेशन क्रियाओं का उपयोग नहीं कर रहा हूं तो मैं एक कुंजी निर्दिष्ट करूं? क्या यह स्टैक नॅविगेटर मार्ग परिभाषा में है? – vijayst

+1

अद्वितीय कुंजी को कॉन्फ़िगर करने के लिए कहां? क्या यह प्रति स्क्रीन या प्रति नेविगेटर है? डॉक्स कुंजी पर बहुत खराब हैं ... – CoredusK

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