得到:对象,预期:字符串或类/函数

时间:2017-05-01 16:12:44

标签: react-native

我正在尝试在我的应用中实施React-Navigation。 我去了reactnavigation.org并尝试了他们的教程,但我遇到了一个问题:

Element type is invalid, expected string or class/function got: object.

我无法看到问题,因为我从他们的教程中复制了代码,无论如何,这是我的代码:

指数:

import React from 'react';
import { StackNavigator } from 'react-navigation';

const Stylelist = StackNavigator({
  Login: { screen: LoginScreen },
  Register: {screen: RegisterScreen}l
});

index.ios.js:

import { AppRegistry } from 'react-native';
import Stylelist from './index';

AppRegistry.registerComponent('Stylelist', () => Stylelist);

登录(永远不会到这里):

  import React, { Component } from 'react';
  import { View, StyleSheet, Text, TouchableOpacity } from 'react-native';
  export default class LoginScreen extends Component{
    render(){
      const { navigate } = this.props.navigation;
      return(
         <View style={styles.container}>
          <TouchableOpacity onPress={()=>navigate("RegisterScreen")}>
            <Text>
              Click.
            </Text>
          </TouchableOpacity>
         </View>
      );
    }
  }

 const styles = StyleSheet.create({
   container:{
       flex: 1,
       justifyItems: "center",
       alignItems: "center"
     }
 });

我做错了什么?

2 个答案:

答案 0 :(得分:0)

在索引中你正在调用Login: { screen: LoginScreen },但是LoginScreen是未定义的?您需要在使用之前导入Lo​​ginScreen。

您对RegisterScreen执行相同操作,您也必须导入它。而且,你似乎有一个流浪'l'? Register: {screen: RegisterScreen}l

我建议设置一个短片。它可以让您快速捕获基本错误。

答案 1 :(得分:0)

修复此问题后,需要将index.js更改为app.js