【发布时间】:2018-04-30 22:44:49
【问题描述】:
我添加了屏幕的图像,这项工作在屏幕的一部分。 联系人屏幕需要是主页而不是 screen1,但如果我在它们之间替换它就不起作用。 我添加了代码,在'LogedInNavigator'中有TabNavigator和DrawerNavigator-从TabNavigator初始化的'Contants'页面和第二部分-带有来自DrawerNavigator的侧面菜单的Screen1-也许它正在解决问题?
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);
请帮帮我..
【问题讨论】:
-
如果你想让你的抽屉覆盖全屏,你可能需要为抽屉制作一个自定义组件
-
这个组件里有什么?我需要主页中的联系人页面..
-
无论你需要什么,查看 react-navigation 的官方文档
-
我可以做些什么来连接联系人页面? TabNavigator 初始页面和 DrawerNavigator 初始页面。
标签: javascript react-native navigation navigation-drawer side-menu