Javascript undefined不是对象(评估';this.props.navigation.navigate';)-React Native
我正在尝试制作我的第一个React本机Android应用程序,但出现以下错误: undefined不是对象(评估'this.props.navigation.navigate') 代码如下:Javascript undefined不是对象(评估';this.props.navigation.navigate';)-React Native,javascript,android,react-native,Javascript,Android,React Native,我正在尝试制作我的第一个React本机Android应用程序,但出现以下错误: undefined不是对象(评估'this.props.navigation.navigate') 代码如下: import React from 'react'; import { StyleSheet, Text, View, Button, TextInput } from 'react-native'; import { StackNavigator } from 'react-navigation'; e
import React from 'react';
import { StyleSheet, Text, View, Button, TextInput } from 'react-native';
import { StackNavigator } from 'react-navigation';
export default class HomeScreen extends React.Component {
static navigationOptions = {
title: 'Home',
};
render() {
const { navigate } = this.props.navigation;
return (
<View>
<Button
title="Show Centers near me"
onPress={() =>
navigate('Results', "Search Term")
}
/>
<Text>or</Text>
</View>
);
}
}
class ResultsScreen extends React.Component {
static navigationOptions = {
title: 'Results',
};
render() {
const { navigate } = this.props.navigation;
return (
<View>
<Text>Hi</Text>
</View>
);
}
}
const App = StackNavigator({
Home: { screen: HomeScreen },
Results: { screen: ResultsScreen }
});
从“React”导入React;
从“react native”导入{样式表、文本、视图、按钮、文本输入};
从“react navigation”导入{StackNavigator};
导出默认类主屏幕扩展React.Component{
静态导航选项={
标题:"家",,
};
render(){
const{navigate}=this.props.navigation;
返回(
导航('结果',“搜索词”)
}
/>
或
);
}
}
类ResultsScreen扩展了React.Component{
静态导航选项={
标题:“结果”,
};
render(){
const{navigate}=this.props.navigation;
返回(
你好
);
}
}
const App=StackNavigator({
主屏幕:{屏幕:主屏幕},
结果:{screen:ResultsScreen}
});
我不明白为什么会出现错误。您导出的组件错误。你应该摆脱
类主屏幕上的导出默认值
定义,并在文件底部执行导出默认值应用程序代码>如果您在AppContainer中处理它,并且在打开抽屉菜单时无法访问它。您可以尝试下面的代码片段
const HomeStackNavigator = createStackNavigator({ Home: {
screen: Home,
navigationOptions : ({navigation}) => ({
title: 'Home',
headerStyle: {
backgroundColor: "#512DA8"
},
headerTitleStyle: {
color: "#fff"
},
headerTintColor: "#fff",
headerLeft: <TouchableOpacity onPress={ () => navigation.openDrawer()}>
<Image
source={require('./images/menu_burger.png')}
style={{width: 24, height: 24, padding: 5, marginLeft: 5}}/>
</TouchableOpacity>
}) } }, { initialRouteName: 'DumontHome' })
const HomeStackNavigator=createStackNavigator({Home:{
屏幕:主页,
导航选项:({navigation})=>({
标题:"家",,
头型:{
背景颜色:“512DA8”
},
头饰样式:{
颜色:“fff”
},
标题颜色:“fff”,
headerLeft:navigation.openDrawer()}>
})}},{initialRouteName:'DumontHome'})
在不使用“搜索词”的情况下尝试,或以以下方式:
navigate('route', {item:'search term'})
尝试在类中添加构造函数,如下所示:constructor(props){super(props)}
@helderjulesdabaere没有帮助!显示有关如何设置StackNavigator的更多代码。导航器会向下传递this.props.navigation,如果设置关闭,则可能会发生此错误。还可以尝试在上搜索,以便找到答案。@hyb175我添加了StackNavigator设置。在发布这篇文章之前,我已经彻底搜索了SO和Google。所有建议的解决方案对我都不起作用。这些信息仍然不足以帮助您。尝试进行更完整的设置,以便人们可以重新创建您遇到的此问题。首先要检查的是,除了StackNavigator调用之外,主屏幕组件是否在其他任何地方使用?