не удается прочитать свойство ‘dispatch’ неопределенного в this.props.navigation.dispatch()

#react-native #react-navigation

#react-native #реагировать-навигация

Вопрос:

Мне нужно вырезать мой ящик, затем я создаю компонент drawer со всеми элементами, которые мне нужны, я создаю функцию с NavigationActions для отправки моих маршрутов, но она не работает. когда я нажимаю на любой элемент, у меня возникает эта ошибка: не удается прочитать свойство ‘dispatch’ неопределенного

 import {NavigationActions} from 'react-navigation';
...
class DrawerComponent extends React.Component {

  navigateToScreen = (route) => () => {
    const navigateAction = NavigationActions.navigate({
      routeName: route
    });
    this.props.navigation.dispatch(navigateAction);
}


  render()...
...
...

  <TouchableOpacity
   style={Styles.centerContent}
   onPress= {this.navigateToScreen('Messages')}

  >
   <IconIonic name="ios-mail" size={60} color= '#fff'/>
   <View>
    <Text>messages</Text>
   </View>
  </TouchableOpacity>
  

В ящике

 import { createStackNavigator, createDrawerNavigator, createAppContainer } from 'react-navigation';
...
const DrawerNavigation = createDrawerNavigator({
    Home: { // entree (route name) : on peut la nommer comme on veut mais on prefere lui donner le meme nom que notre screen qu'on va afficher
      screen: HomeStackNavigation, // le screen qu'on va afficher IL DOIT ETRE UN STACK
    },
    Message: {
      screen: Messages,
    },
},
{
  drawerWidth: width*0.83,
  contentComponent: props => 
  {
    return(<DrawerComponent/>)
  },
  drawerPosition: 'left',
},
);
  

до этой ошибки у меня было что-то вроде: undefined не является объектом, оценивающим _this.props.navigation.dispatch()

Ответ №1:

 {
  contentComponent: props => {
    return <DrawerComponent {...props} />;
  };
}
  

Не глотайте props . Передайте его дочернему компоненту