Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript undefined不是对象(评估';this.props.navigation.navigate';)-React Native_Javascript_Android_React Native - Fatal编程技术网

Javascript undefined不是对象(评估';this.props.navigation.navigate';)-React Native

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

我正在尝试制作我的第一个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';

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调用之外,主屏幕组件是否在其他任何地方使用?