Javascript &引用;undefined不是对象(评估';组件.router';)”;运行锅炉板导航应用程序时

Javascript &引用;undefined不是对象(评估';组件.router';)”;运行锅炉板导航应用程序时,javascript,react-native,react-navigation,react-component,Javascript,React Native,React Navigation,React Component,我是react native新手,想尝试react导航。 但当我尝试运行一个基本应用程序时,它会给我“undefined不是一个对象(评估“Component.router”)错误。请帮忙 这是错误的屏幕截图 这是我在默认项目中唯一更改的内容,除了安装 react导航和react本机手势处理程序 import React, {Component} from 'react'; import {Platform, StyleSheet, Text, View} from 'react-native

我是react native新手,想尝试react导航。 但当我尝试运行一个基本应用程序时,它会给我“undefined不是一个对象(评估“Component.router”)错误。请帮忙

这是错误的屏幕截图

这是我在默认项目中唯一更改的内容,除了安装 react导航和react本机手势处理程序

import React, {Component} from 'react';
import {Platform, StyleSheet, Text, View} from 'react-native';
import {createAppContainer,
        createSwitchNavigator,
        createStackNavigator} from 'react-navigation';

type Props = {};
export default class App extends Component<Props> {
  render() {
    return <AppNavigator/>;
  }
}

class MainScreen extends Component{
  render(){
    return <Text>Hi</Text>
  }
}

const AppNavigator = createAppContainer(SwitchNavigator);

const SwitchNavigator = createSwitchNavigator({
  MainScreen : MainScreen,

});```


import React,{Component}来自'React';
从“react native”导入{平台、样式表、文本、视图};
导入{createAppContainer,
createSwitchNavigator,
createStackNavigator}来自“反应导航”;
类型Props={};
导出默认类应用程序扩展组件{
render(){
返回;
}
}
类主屏幕扩展组件{
render(){
回电
}
}
const AppNavigator=createAppContainer(SwitchNavigator);
const SwitchNavigator=createSwitchNavigator({
主屏幕:主屏幕,
});```

在您的代码中,您在SwitchNavigator声明之前访问它

letconst变量只能在其声明之后访问

例如:

console.log(a); // Uncaught ReferenceError: Cannot access 'a' before initialization
const a = 10;
资料来源:

也就是说,您的代码应该是:

import React, {Component} from 'react';
import {Platform, StyleSheet, Text, View} from 'react-native';
import {createAppContainer,
        createSwitchNavigator,
        createStackNavigator} from 'react-navigation';

type Props = {};
export default class App extends Component<Props> {
  render() {
    return <AppNavigator/>;
  }
}

class MainScreen extends Component{
  render(){
    return <Text>Hi</Text>
  }
}

const SwitchNavigator = createSwitchNavigator({
  MainScreen : MainScreen,
});

const AppNavigator = createAppContainer(SwitchNavigator);

import React,{Component}来自'React';
从“react native”导入{平台、样式表、文本、视图};
导入{createAppContainer,
createSwitchNavigator,
createStackNavigator}来自“反应导航”;
类型Props={};
导出默认类应用程序扩展组件{
render(){
返回;
}
}
类主屏幕扩展组件{
render(){
回电
}
}
const SwitchNavigator=createSwitchNavigator({
主屏幕:主屏幕,
});
const AppNavigator=createAppContainer(SwitchNavigator);

在您的代码中,您在SwitchNavigator声明之前访问它

letconst变量只能在其声明之后访问

例如:

console.log(a); // Uncaught ReferenceError: Cannot access 'a' before initialization
const a = 10;
资料来源:

也就是说,您的代码应该是:

import React, {Component} from 'react';
import {Platform, StyleSheet, Text, View} from 'react-native';
import {createAppContainer,
        createSwitchNavigator,
        createStackNavigator} from 'react-navigation';

type Props = {};
export default class App extends Component<Props> {
  render() {
    return <AppNavigator/>;
  }
}

class MainScreen extends Component{
  render(){
    return <Text>Hi</Text>
  }
}

const SwitchNavigator = createSwitchNavigator({
  MainScreen : MainScreen,
});

const AppNavigator = createAppContainer(SwitchNavigator);

import React,{Component}来自'React';
从“react native”导入{平台、样式表、文本、视图};
导入{createAppContainer,
createSwitchNavigator,
createStackNavigator}来自“反应导航”;
类型Props={};
导出默认类应用程序扩展组件{
render(){
返回;
}
}
类主屏幕扩展组件{
render(){
回电
}
}
const SwitchNavigator=createSwitchNavigator({
主屏幕:主屏幕,
});
const AppNavigator=createAppContainer(SwitchNavigator);

似乎没问题,只是您忘了导入主屏幕

import { MainScreen } from '..pathname'

似乎没问题,只是你忘了导入主屏幕

import { MainScreen } from '..pathname'

代码中有两个问题

(1) 您正在尝试在声明之前访问
SwitchNavigator
。 (2) 您正在执行
MainScreen:MainScreen
,这将导致错误

const SwitchNavigator = createSwitchNavigator({
  MainScreen,
});


代码中有两个问题

(1) 您正在尝试在声明之前访问
SwitchNavigator
。 (2) 您正在执行
MainScreen:MainScreen
,这将导致错误

const SwitchNavigator = createSwitchNavigator({
  MainScreen,
});


谢谢你的回复。这解决了我的问题。我在声明之前使用了变量。感谢您的回复。这解决了我的问题。我在声明之前使用了变量。