遇到这个问题时,我正在练习我的反应导航技能。如果这是一个新手问题,请原谅我。标题几乎总结了这一切。我在 Routes.js 文件中定义了 StackNavigator。当我运行它时,它不起作用。但是如果我把它放在索引文件中,它工作正常。我确定我导出了 StackNavigator 并将其导入到我拥有 AppRegistry 的索引文件中。
我可能错过了一些东西,但我不确定它是什么。
以下是错误消息:
Element type is invalid: expected a string (for built in
components) or a class/function (for composite components) but
got: undefined.
这是我的路由文件:
import React, { Component } from 'react'
import { StackNavigator } from 'react-navigation'
import Hello from './screens/Hello'
import Hi from './screens/Hi'
import Ola from './screens/Ola'
export const AppNavigator = StackNavigator({
Hello: { screen: Hello },
Hi: { screen: Hi },
Ola: { screen: Ola }
})
这是我的 index.ios.js 文件:
import React, { Component } from 'react'
import { AppRegistry } from 'react-native'
import { StackNavigator } from 'react-navigation'
import AppNavigator from './app/Routes'
AppRegistry.registerComponent('nav', () => AppNavigator)
上面的代码不起作用。但这个确实:
import React, { Component} from 'react'
import { AppRegistry } from 'react-native'
import { StackNavigator } from 'react-navigation'
import Hello from './app/screens/Hello'
import Hi from './app/screens/Hi'
import Ola from './app/screens/Ola'
export const AppNavigator = StackNavigator({
Hello: { screen: Hello },
Hi: { screen: Hi },
Ola: { screen: Ola }
})
import AppNavigator from './app/Routes'
AppRegistry.registerComponent('nav', () => AppNavigator)
我的线索是我没有正确导出 StackNavigator,或者我没有将其正确导入索引文件。任何帮助将不胜感激。谢谢!
有关重复的问题,请参阅此帖子: 未捕获错误:固定冲突:元素类型无效:需要字符串(对于内置组件(或类/函数,但得到:对象
另外,请查看这篇文章以获取更多 ES6 模块使用学习: http://2ality.com/2014/09/es6-modules-final.html