2017-03-16 18 views
26

में वापस बटन अक्षम करें मैं प्रतिक्रिया देशी नेविगेशन (प्रतिक्रिया-नेविगेशन) StackNavigator का उपयोग कर रहा हूँ। यह ऐप के पूरे जीवन चक्र में लॉगिन पृष्ठ से शुरू होता है। मैं एक बैक विकल्प नहीं चाहता, लॉग इन स्क्रीन पर लौट रहा हूं। क्या किसी को पता है कि लॉगिन स्क्रीन के बाद स्क्रीन पर इसे कैसे छिपाया जा सकता है? Btw, मैं भी यह लॉगिन स्क्रीन में उपयोग करके छुपा रही है:प्रतिक्रिया देशी नेविगेशन

const MainStack = StackNavigator({ 
    Login: { 
    screen: Login, 
    navigationOptions: { 
     title: "Login", 
     header: { 
     visible: false, 
     }, 
    }, 
    }, 
    // ... other screens here 
}) 

उत्तर

58

प्रतिक्रिया नेविगेशन संस्करण> = 1.0.0-beta.9 के लिए, वापस बटन गायब करने के लिए आप स्क्रीन है जिसमें से आप से नेविगेट करने के लिए) चाहते हैं पर कर रहे हैं:

import { NavigationActions } from 'react-navigation'; 

और लक्ष्य मार्ग सब वापस कार्यक्षमता अक्षम होगा जो करने के लिए नेविगेट करने के लिए एक समारोह का उपयोग करें:

resetNavigation(targetRoute) { 
    const resetAction = NavigationActions.reset({ 
    index: 0, 
    actions: [ 
     NavigationActions.navigate({ routeName: targetRoute }), 
    ], 
    }); 
    this.props.navigation.dispatch(resetAction); 
} 

और फिर this.resetNavigation('myRouteWithDisabledBackFunctionality') फोन जब आप लक्ष्य मार्ग के लिए iOS पर आप अभी भी स्लाइड कर सकते हैं

+14

यदि आप 2017 – mixdev

+2

में हैं तो यह सही जवाब है, यह वापस बटन हटा देगा, लेकिन एंड्रॉइड में हम अभी भी डिवाइस बैक बटन का उपयोग करके नेविगेट कर सकते हैं। क्या इसे अक्षम करने का कोई तरीका है? –

+3

हां, मैंने अपना जवाब अपडेट किया। –

3

इसे अपने आप को पाया;) जोड़ने:

left: null, 

बटन डिफ़ॉल्ट वापस अक्षम करें।

const MainStack = StackNavigator({ 
    Login: { 
    screen: Login, 
    navigationOptions: { 
     title: "Login", 
     header: { 
     visible: false, 
     }, 
    }, 
    }, 
    FirstPage: { 
    screen: FirstPage, 
    navigationOptions: { 
     title: "FirstPage", 
     header: { 
     left: null, 
     } 
    }, 
    }, 
14

आप left:null का उपयोग कर वापस बटन छिपा कर सकते हैं, लेकिन Android उपकरणों के लिए यह अभी भी है जब उपयोगकर्ता वापस बटन दबाता है वापस जाने में सक्षम है। आप नेविगेशन राज्य पुनर्स्थापित करने के लिए और की जरूरत है left:null

साथ बटन को छिपाने यहाँ नेविगेशन राज्य रीसेट करने के लिए डॉक्स हैं: https://reactnavigation.org/docs/navigators/navigation-actions#Reset

यह समाधान react-navigator 1.0.0-beta.7 लिए काम करता है, फिर भी left:null नहीं रह गया है नवीनतम संस्करण के लिए काम करता है। (यह मानते हुए

navigationOptions: { 
    title: 'MyScreen', 
    headerLeft: null 
} 

आप भी नेविगेशन ढेर साफ करने के लिए चाहते हैं, आप कुछ इस तरह कर सकते हैं:

+4

नेविगेट करना चाहते हैं स्क्रीन के किनारे से वापस पॉप करने के लिए। नेविगेशन स्थिति को रीसेट करना निश्चित रूप से आवश्यक है। – cameronmoreau

1

प्रतिक्रिया नेविगेशन संस्करण> = 1.0.0-beta.9

navigationOptions: { 
headerLeft: null} 
संबंधित मुद्दे