Создание моего собственного компонента меню в React Native - PullRequest
0 голосов
/ 28 января 2020

Я создаю компонент «Меню», который я вызываю на каждой странице, и он отображается правильно, но я не могу заставить его работать. Я не могу перемещаться так же легко, как на своей странице входа в систему: кнопка с событием OnPress и вызов одной функции с / при правильном входе в систему / выполнении: this.props.navigation.navigate("Accueil")

Итак ... Я учил, что это может быть таким же, и в моем компоненте «Меню» я пытался вызвать тот же код:

<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)

Я пытался использовать реквизит, но тоже не работал.

Дополнительная информация:

  • Использование моего Компонент «Меню» похож на класс Меню расширяет React.Component / некоторый код / ​​и экспортирует меню по умолчанию, затем <Menu/> на моих страницах.

  • Мои попытки с подпорками выглядели как _nav(page){ this.props.navigation.navigate(page) } вкл. такие страницы, как «Home» и «Datas» вверху, перед «render () {return (» part. Затем const { nav } = this.props в моем компоненте «Menu» и что-то вроде onPress={() => nav("Donnees")} на моих кнопках меню.

Есть идеи? Или образцы кодов? Я не смог найти ни одного образца меню, который бы соответствовал моим потребностям

1 Ответ

0 голосов
/ 28 января 2020

Вам необходимо передать реквизиты навигации вашему компоненту меню следующим образом (при условии, что вы используете его на экране, объявленном в вашей конфигурации навигации):

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

, при этом ваш компонент меню будет иметь доступ к навигационная опора

this.props.navigation.navigate('Datas');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...