反应本机模拟器给出错误 “不变违反:元素类型无效:预期为字符串(对于内置组件)或类/函数(对于复合组件),但是得到了:对象。您可能忘记了从其定义的文件中导出组件,或者可能混淆了默认名称和命名导入。
App.js
import React, { Component } from 'react';
import {
SafeAreaView,
StyleSheet,
ScrollView,
View,
NavigatorIOS,
Text,
StatusBar,
} from 'react-native';
import {
Header,
LearnMoreLinks,
Colors,
DebugInstructions,
ReloadInstructions,
} from 'react-native/Libraries/NewAppScreen';
import SearchPage from './SearchPage';
export default class App extends Component<{}> {
render() {
return (
<NavigatorIOS
style={styles.container}
initialRoute={{
title: 'Property Finder',
component: SearchPage,
}}/>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
},
});
SearchPage.js
import React, { Component } from 'react';
import {
StyleSheet,
Text,
TextInput,
View,
Button,
ActivityIndicator,
Image,
} from 'react-native';;
export default class SearchPage extends Component<{}> {
render() {
return (
<View style={styles.container}>
<Text style={styles.description}>
Search for houses to buy!
</Text>
<Text style={styles.description}>
Search by place-name or postcode.
</Text>
</View>
);
}
}
const styles = StyleSheet.create({
description: {
marginBottom: 20,
fontSize: 18,
textAlign: 'center',
color: '#656565'
},
container: {
padding: 30,
marginTop: 65,
alignItems: 'center'
},
});
有人可以告诉其中的问题。 使用本机版本:0.61
答案 0 :(得分:0)
您遇到的错误通常发生在您可能忘记了从定义文件中导出组件时。我看到您的代码已完成。
我运行您的代码。它显示NavigatorIOS
已从库中删除。而且我认为它是由NavigatorIOS
引起的,仅在ios上有效且已弃用。您应该使用“ react-native-navigation or
react-native-router-flux”,建议您使用react-native-router-flux
。
如果使用react-native-router-flux
,则可以查看以下代码:
const App = () => (
<Router>
<Stack key="root">
<Scene key="search" component={SearchParge} title="search" />
</Stack>
</Router>
// then, if you want to go to it
Actions.search()
);