简体   繁体   English

React Native - 组件异常

[英]React Native - Component Exception

I am getting an error that says Component Exception(undefined is not an object (evaluating 'this.renderScreenComponents') when running my react native. I am trying to create a drawer menu. Before I started trying to implement the menu, everything was working fine.运行我的本机反应时,我收到一条错误消息,提示组件异常(未定义不是 object(评估'this.renderScreenComponents')。我正在尝试创建一个抽屉菜单。在我开始尝试实现菜单之前,一切正常美好的。

import { StyleSheet } from "react-native";
import { NavigationContainer } from "@react-navigation/native";
import { createStackNavigator } from "@react-navigation/stack";
import { createDrawerNavigator } from "@react-navigation/drawer";
import ListView from "./src/screens/components/list_view";
import DetailView from "./src/screens/components/detail_view";
import ScreenA from "./src/screens/drawer/screenA.js";
import ScreenB from "./src/screens/drawer/screenB.js";
import ScreenC from "./src/screens/drawer/screenC.js";

const Stack = createStackNavigator()
const Drawer = createDrawerNavigator()

// this is the problematic part
renderScreenComponents = () => (
  <Stack.Navigator>
    <Stack.Screen name="Home" component={ListView} />
    <Stack.Screen name="Detail" component={DetailView} />
  </Stack.Navigator>
);

export default function App() {
  return (
    <NavigationContainer>
      <Drawer.Navigator>
        <Drawer.Screen name="Home" children={this.renderScreenComponents} />
        <Drawer.Screen name="Screen A" component={ScreenA} />
        <Drawer.Screen name="Screen B" component={ScreenB} />
        <Drawer.Screen name="Screen C" component={ScreenC} />
      </Drawer.Navigator>
    </NavigationContainer>
  );
}

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

I have made sure that there are no typos in any of the files, but I still am not sure what is going on.我已确保任何文件中都没有拼写错误,但我仍然不确定发生了什么。 I would sincerely appreciate any help.我真诚地感谢任何帮助。 Thanks in advance!提前致谢!

PS This is JavaScript PS这是JavaScript

Declare your function using const or function keyword.使用 const 或 function 关键字声明您的 function。

const renderScreenComponents = () => (
  <Stack.Navigator>
    <Stack.Screen name="Home" component={ListView} />
    <Stack.Screen name="Detail" component={DetailView} />
  </Stack.Navigator>
);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM