#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
. Передайте его дочернему компоненту