React-native 没有将组件识别为组件

Posted

技术标签:

【中文标题】React-native 没有将组件识别为组件【英文标题】:React-native is not recognizing a component as a component 【发布时间】:2019-03-30 14:52:49 【问题描述】:

我有一个 react-native 应用,使用 react-navigation。

我使用了一个完美运行的示例,但是当我添加我自己的组件时,我收到一条错误消息,它不是一个组件。

错误信息:

"路由 Loginscreen 的组件必须是 react 组件"

有效组件的代码:

class DetailsScreen extends React.Component  render() 
   return ( <View style= flex: 1, alignItems: 'center', justifyContent: 'center' >
    <Text>Details Screen</Text>
  </View>);

不起作用的组件代码:

class Login extends React.Component 
 render() 
   return (
    <ImageBackground source=require('./assets/Background.png') style=styles.background>
  </ImageBackground>
);

我当然有导入,我已经这样做了:

export default createStackNavigator(   
   Home:  screen: HomeScreen, ,
   Details:  screen: DetailsScreen,,
   LoginScreen:  screen: Login,,,
 initialRouteName: 'Login',);

我完全糊涂了,因为没有功能差异,文档没有提到这一点,我也找不到类似的问题

感谢您抽出宝贵时间阅读本文

【问题讨论】:

错误是什么? @ArielSalem "路由 Loginscreen 的组件必须是 react 组件" 您如何导出登录组件以及如何将登录组件导入导航器? @ArielSalem 我偶然发现了答案。事实证明,“屏幕”必须在“导出默认 createStackNavigator”之前,我将它放在组件的中间。感谢您花时间帮助我 没问题,很高兴你明白了 【参考方案1】:

哇!

我试图自己测试这个以修复它,突然它起作用了。查看编辑历史,我发现我已将“导出默认 createStackNavigator”从 app.js 的 middel 移至底部。

我是 .net 开发人员,因此根据我的经验,这并不直观

【讨论】:

以上是关于React-native 没有将组件识别为组件的主要内容,如果未能解决你的问题,请参考以下文章

React-Native + Redux 将 ID 传递给组件

为啥 Qt::mightBeRichText() 不能将 HTML 表格标签识别为富文本?

有没有办法可以将 Text 组件的全部内容包装在 react-native 中的父视图中?

JSF 组件渲染器中的 JSF 标记

ReactNative: 使用View组件创建九宫格

ScrollView 在 react-native 中渲染没有数据的更新组件?