我是React Native的新手,并尝试从初学者教程开始。我遵循了教程,创建了一个"Header"组件,并尝试导出和导入它,最终使用它。不幸的是,我收到了一个错误:未捕获错误:不变冲突:元素类型无效:应为字符串(用于内置组件)或类/函数,但得到了:对象。我遇到了这两个问题:
- 未捕获错误:不变冲突:元素类型无效:应为字符串(用于内置组件)或类/函数,但得到:object
- 未捕获错误:不变冲突:元素类型无效:应为字符串
但他们都没有帮我解决问题。
这些是我的文件及其内容:
index.js
import { AppRegistry } from 'react-native';
import App from './App';
AppRegistry.registerComponent('albums', () => App);
App.android.js
// Import section
import React from 'react';
import { AppRegistry } from 'react-native';
import Header from './src/components/header';
// create a component
const App = () => (
<Header />
);
// Render it to the device
AppRegistry.registerComponent('albums', () => App);
header.js
// Import labraries for making a component
import React from 'react';
import { Text } from 'react-native';
// Make a component
const Header = () => {
return <Text>Albums</Text>
};
// Make the component available to other parts of the app
export default Header;
我也尝试过导入这样的标题(但没有帮助):
import { Header } from './src/components/header';
如果能为解决这个问题提供任何帮助,我将不胜感激。提前感谢:)
第S页我使用的是React Native版本0.49.1
所以我想好了,问题是我注册了两次应用程序:
AppRegistry.registerComponent('albums', () => App);
一次在index.js中,第二次在App.android.js中。我通过从index.js.中删除注册来解决这个错误
无论如何都要感谢帮助者:)
更改此形式:
import { Header } from './src/components/header';
至:
import Header from './src/components/header';
在index.js中更改:
import App from './App';
至
import App from './App.android';
希望这会有所帮助。