组件异常:组件的视图配置 getter 回调必须是函数(收到“未定义”)

Posted

技术标签:

【中文标题】组件异常:组件的视图配置 getter 回调必须是函数(收到“未定义”)【英文标题】:Component Exception: View config getter callback for component must be a function (received 'undefined') 【发布时间】:2021-06-27 16:19:02 【问题描述】:

我正在做基本的反应原生导航示例,但是当我尝试使其工作时出现错误!

这里是导航模块:

// In App.js in a new project

import * as React from 'react';
import  View, Text  from 'react-native';
import  NavigationContainer  from '@react-navigation/native';
import  createStackNavigator  from '@react-navigation/stack';
import  LoginScreen  from "./Components/Login/LoginScreen.js";
import "./Components/Main/MainScreen.js";


const Stack = createStackNavigator();

function App() 
  return (
    <NavigationContainer>
      <Stack.Navigator>
        <Stack.Screen name="Login" component="LoginScreen" />
        <Stack.Screen name="Main" component="MainScreen" />
      </Stack.Navigator>
    </NavigationContainer>
  );


export default App;

这里是 LoginScreen.js:

import  StatusBar  from 'expo-status-bar';
import React from 'react';
import  StyleSheet, Text, View  from 'react-native';

export default function App() 
  return (
    <View style=styles.container>
      <Text>Open up App.js to start working on your app!</Text>
      <StatusBar style="auto" />
    </View>
  );


const styles = StyleSheet.create(
  container: 
    flex: 1,
    backgroundColor: '#fff',
    alignItems: 'center',
    justifyContent: 'center',
  ,
);

我得到的错误是:组件异常:组件'LoginScreen'的视图配置getter回调必须是一个函数(收到'未定义')

【问题讨论】:

【参考方案1】:

答案:在将组件传递给屏幕的component 属性时去掉引号。


文档指定component 属性如下:

为屏幕渲染的 React 组件

https://reactnavigation.org/docs/screen/#component

所以它不起作用,因为您传递的是 string 而不是反应组件。


而不是这个:

function App() 
  return (
    <NavigationContainer>
      <Stack.Navigator>
        <Stack.Screen name="Login" component="LoginScreen" />
        <Stack.Screen name="Main" component="MainScreen" />
      </Stack.Navigator>
    </NavigationContainer>
  );

这样做:

function App() 
  return (
    <NavigationContainer>
      <Stack.Navigator>
        <Stack.Screen name="Login" component=LoginScreen />
        <Stack.Screen name="Main" component=MainScreen />
      </Stack.Navigator>
    </NavigationContainer>
  );

【讨论】:

以上是关于组件异常:组件的视图配置 getter 回调必须是函数(收到“未定义”)的主要内容,如果未能解决你的问题,请参考以下文章

组件“div”的视图配置 getter 回调必须是一个函数(收到“未定义”)。确保以大写字母开头的组件名称

查看组件的配置getter回调``必须是一个函数

drf 解析模块 异常模块 响应模块 序列化组件

状态管理vuex的action,mutation,getter,state各种姿势的理解与应用

配置或初始化组件

Python 解析模块 异常模块 响应模块 序列化和反序列化组件