You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React-Native使用react-navigation实现Drawer Navigator报错求助

修复React Native Drawer Navigator的报错问题

我帮你排查了代码里的问题,都是几个容易忽略的小错误导致的报错,咱们一步步来修复:

错误点1:组件名拼写错误

你把React Native的ScrollView组件写成了ScroollView(多了一个字母o),React Native找不到这个不存在的组件,肯定会抛出错误,得改成正确的ScrollView。

错误点2:导入语句语法混乱

导入SafeAreaView的时候后面多了一串无效内容[enter image description here][3],这会直接导致语法解析失败,必须删掉这部分,正确导入SafeAreaView。

额外注意点

记得检查./images/perfil.png这个图片路径是否正确,如果图片文件不存在或者路径写错,也会导致运行时报错。


修复后的完整代码

import React, { Component } from "react";
import { Platform, StyleSheet, Text, View, ScrollView, Dimensions, Image, SafeAreaView } from "react-native";
import { createDrawerNavigator, createAppContainer, DrawerItems } from "react-navigation";
import LoginScreen from "./Screens/Login/LoginScreen";
import HomeScreen from "./Screens/Home/HomeScreen";

type Props = {};
export default class App extends Component<Props> {
  render() {
    return <Apps />;
  }
}

const CustomDrawerComponent = props => (
  <SafeAreaView style={{ flex: 1 }}>
    <View style={{ height: 150, backgroundColor: "white", alignItems: "center", justifyContent: "center" }}>
      <Image source={require("./images/perfil.png")} style={{ height: 120, width: 120, borderRadius: 60 }} />
    </View>
    <ScrollView>
      <DrawerItems {...props} />
    </ScrollView>
  </SafeAreaView>
);

const AppDrawerNavigator = createDrawerNavigator(
  {
    Home: HomeScreen,
    Settings: LoginScreen
  },
  { contentComponent: CustomDrawerComponent }
);

const Apps = createAppContainer(AppDrawerNavigator);

const styles = StyleSheet.create({});

修复完成后,重启Metro Bundler,重新运行Android模拟器里的项目,侧边抽屉菜单应该就能正常工作了。如果还是有报错,确认一下是否安装了react-navigation-drawer依赖(React Navigation v4版本需要单独安装这个包),执行npm install react-navigation-drawer或者yarn add react-navigation-drawer即可。

内容的提问来源于stack exchange,提问作者Leandro Ribeiro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 09:06:32