在 React Native 中创建我自己的菜单组件

Creating my own Menu Component in React Native

我正在创建一个 "Menu" 组件,我会在每个页面上调用它,它可以正确显示,但我无法让它工作。 我无法像在登录页面中那样轻松地导航:带有 OnPress 事件的按钮和对一个函数的调用/如果正确登录/执行:this.props.navigation.navigate("Accueil")

所以...我教过它可能是相同的并且在我的组件上 "Menu" 我尝试调用相同的代码:

<TouchableOpacity style={[styles.menu_item_selected,styles.menu_item]} onPress={() => nav("Home")}>
   <FontAwesome name="home" size={40} color="#fff"/>
   <Text style={styles.menu_text}>Home</Text>
</TouchableOpacity>
<TouchableOpacity style={styles.menu_item}  onPress={() => nav("Datas")}>
   <FontAwesome name="user" size={40} color="#fff"/>
   <Text style={styles.menu_text}>Datas</Text>
</TouchableOpacity>

但是它不起作用,它在按下按钮时崩溃。

这是我的导航文件:

import { createAppContainer } from 'react-navigation'
import { createStackNavigator } from 'react-navigation-stack'

import Login from '../Components/Login'
import Menu from '../Components/Menu'
import Home from '../Components/Home'
import Datas from '../Components/Datas'

const SearchStackNavigator = createStackNavigator({
  Login: {
    screen: Login
  },
  Home:{
    screen: Home
  },
  Datas:{
    screen: Datas
  }
})

export default createAppContainer(SearchStackNavigator)

我试过用道具,但是没用。

更多信息:

有什么想法吗?或者示例代码?我找不到任何满足我需求的自定义菜单示例

您需要像这样将导航道具传递给您的菜单组件(假设您在导航配置中声明的屏幕中使用它):

<Menu navigation={this.props.navigation} /> 

这样,您的菜单组件将有权访问导航道具

this.props.navigation.navigate('Datas');