2017-11-04 2 views
0

Ich möchte die Schublade auf screen: ExportClues schließen, aber es funktioniert nicht.Reagieren Navigation Wie schließe ich den DrawerNavigator verschachtelt StackNavigator?

Das ist mein Code.

const Drawer = DrawerNavigator({ 
    Navigators: { 
      screen: Navigators 
     }, 
    { 
      initialRouteName: 'Navigators', 
      drawerWidth: Metrics.screenWidth - 95, 
      drawerPosition: 'right', 
      contentComponent: MenuNavigator 
     } 
}) 


const Navigators = StackNavigator({ 
    ...screen 
}) 

const MenuNavigator = StackNavigator({ 
     ExportClues: { 
       screen: ExportClues, 
     }, 
     ...other screen 
}) 

Es ist ExportClues Komponente:

export default class index extends Component { 

        render() { 
         return(
           <View 
             style={{flex: 1, backgroundColor: '#ffffff'}} 
           > 
             <TouchableOpacity 
              onPress={()=>{ 
              this.props.navigation.navigate('DrawerClose'); 
               // It is not work 
              }} 
             > 
             <TouchableOpacity/> 
           </View> 
         ) 
        } 
} 

Sorry, Mein Englisch ist sehr schlecht.

So erhalten Sie MenuNavigator Parent Navigator als DrawerNavigator?

Antwort

0

auf den Link Suchen Sie zur Verfügung gestellt, versuchen Sie die Schublade Komponente falsch sind: Sie schreiben Import Schublade von ‚./drawer‘ und versuchen, "verwenden Komponente aber Ihre drawer.js Datei exportiert CustomerManagerDrawerNavigator“

export default CustomerManagerDrawerNavigator; 

, die Ihren Code bedeutet, sollte Import CustomerManagerDrawerNagivator von './drawer' sein und Ihre Komponente sollte als in der render() Spaß genannt werden ction.

Wenn Sie DrawerNavigator verwenden möchten müssen Sie Ihre

const MenuNavigator = StackNavigator({ 

zu

const MenuNavigator = DrawerNavigator({ 

zu ändern, um die Schublade während in ExportClues zu schließen, Sie

this.props.navigation.navigate('DrawerClose'); // close drawer 

nennen würde die Ich sehe, dass Sie haben, aber Sie geben in Ihrer Navigatorkonfiguration keine Navigationsoptionen weiter, also nicht Zugriff auf die Navigationsfunktion haben. Sie müssen so etwas wie den Code unten:

navigationOptions: ({navigation}) => ({ 
.../*Your navigation options here */ 
}), 

Navigation als Stütze, um Ihre geöffneten Schublade

passieren würde ich das für DrawerNavigator bei https://reactnavigation.org/docs/navigators/drawer, um weitere Informationen oder, wenn möglich Post eine sich React-Navigation Homepage Bewertung Link zu einem Arbeits-Repository

+0

Hallo, Vielen Dank für Ihre Antwort! Aber es kann nicht gelöst werden, können Sie mir mit der Demo helfen? Danke [https://snack.expo.io/SJ1LIcjRW](https://snack.expo.io/SJ1LIcjRW) – RoarRain

+0

Ich habe die Antwort aktualisiert Klicken Sie oben auf, um auf Probleme in Ihrer Datei App.js und Drawer.js hinzuweisen, die korrigiert werden müssen. – SteveB

+0

Danke, jetzt ist es Arbeit. – RoarRain

Verwandte Themen