0

Ich Bild von Bildschirm hinzufügen, dies funktioniert in einem Teil des Bildschirms. Der Kontaktbildschirm muss Hauptseite und nicht Bildschirm1 sein, aber es hat nicht funktioniert, wenn ich zwischen ihnen ersetzen. Ich habe den Code hinzugefügt, in 'LogedInNavigator' haben TabNavigator und DrawerNavigator - die 'Contants' Seite von TabNavigator und Teil zwei - Screen1 mit dem Side-Menü ist es von DrawerNavigator - vielleicht macht es das Problem? enter image description hereSide-Menü nicht den gesamten Bildschirm abdecken (DrawerNavigator - React Native)

LogedInNavigator.js

import....... 
styles...... 

const LoggedInNavigator = TabNavigator(
    { 
    Contacts: {screen: ContactScreen,}, 
    Chat: {screen: ChatScreen,}, 
    Dashbaord: {screen: DashbaordScreen,}, 
    Profile: {screen: ProfileScreen,}, 
    Search: {screen: SearchScreen,}, 
    }, 
    { 
    initialRouteName: "Contacts", 
    tabBarPosition: "bottom", 
    tabBarOptions: { 
     showIcon: true, 
     activeTintColor: 'white', 
    } 
    } 
); 

export default() => <LoggedInNavigator onNavigationStateChange={null} /> 

export const Drawer = DrawerNavigator ({ 
    Home:{ 
    screen: Screen1, 
    navigationOptions: { 
     drawer:{ 
     label: 'Home', 
     }, 
    } 
    }, 
    Camera: { 
    screen: Screen2, 
    navigationOptions: { 
     drawer:{ 
     label: 'Camera', 
     }, 
    } 
    }, 
}) 

Contants.js

class Contacts extends Component { 
    componentDidMount() { 
    // TBD loggedin should come from login process and removed from here 
    const { loggedIn, getContacts } = this.props; 
    loggedIn(1); 
    getContacts(); 
    } 

    render() { 
    const Router = createRouter(() => ({})); //IDAN 
    const { navigation, avatar, contacts } = this.props; 
    return (
     <NavigationProvider router={Router}> 
     <View style={{flex:1}}> 
      <ContactView 
      navigation={navigation} 
      avatar={avatar} 
      contacts={contacts} 
      /> 
     <Drawer /> 
     </View> 
     </NavigationProvider> 
    ); 
    } 
} 

const mapStateToProps = (state) => { 
    return (
    { 
     avatar: state.user.user.avatar, 
     contacts: state.contacts.contacts, 
    } 
); 
}; 

export default connect(mapStateToProps, { loggedIn, getContacts })(Contacts); 

mir bitte helfen ..

+0

, wenn Sie Ihre Schublade wollen vollen Umfang nutzen zu decken, werden Sie wahrscheinlich benötigen eine eigene Komponente für eine Schublade machen – Eduard

+0

Und was in dieser Komponente sein? Ich brauche die Seite Kontakte auf der Hauptseite. – Idan

+0

Was immer Sie brauchen, überprüfen Sie die offiziellen Dokumente der Reagierenavigation – Eduard

Antwort

0

Sie können die Schublade Breite mit Abmessungen eingestellt Breite. Lesen Sie die Dokumentation hier

https://reactnavigation.org/docs/navigators/drawer

import { Dimensions } from 'react-native'; 

... 

const { width } = Dimensions.get('screen'); 

... 

export const Drawer = DrawerNavigator (
{ 
    Home:{ 
    screen: Screen1, 
    navigationOptions: { 
     drawer:{ 
     label: 'Home', 
     }, 
    } 
    }, 
    Camera: { 
    screen: Screen2, 
    navigationOptions: { 
     drawer:{ 
     label: 'Camera', 
     }, 
    } 
    }, 
}, 
{ 
    drawerWidth: width 
}); 
+0

Es funktioniert nicht ... die Breite meins, um das Menü nach Open..so öffnet es alle der Breite Bildschirm, aber es immer noch an der gleichen Stelle – Idan

Verwandte Themen