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

React Native报错:RCTEventEmitter.receiveEvent()模块未注册为可调用模块的问题求助

React Native报错:RCTEventEmitter.receiveEvent()模块未注册为可调用模块的问题求助

我最近在开发一个React Native应用时,碰到了RCTEventEmitter.receiveEvent()模块未注册为可调用模块的报错,试了重启Metro、清除缓存这些基础操作还是没解决,想请教下社区的大佬们。先附上我的主入口文件app.tsx代码:

import {useEffect, useState}from 'react';
import * as React from 'react';
import { View, StyleSheet} from 'react-native';
import { NavigationContainer } from '@react-navigation/native';
import { createNativeStackNavigator } from '@react-navigation/native-stack';
import AsyncStorage from '@react-native-async-storage/async-storage';
import { SafeAreaProvider } from 'react-native-safe-area-context';
import { GestureHandlerRootView } from 'react-native-gesture-handler';
import LoginScreen from './src/pages/LoginScreen';
import OtpScreen from './src/pages/OtpScreen';
import CreateAccount from './src/pages/CreateAccount';
import Dashboard from './src/pages/Dashboard';
import OneTime from './src/pages/OneTime';
import Monthly from './src/pages/Monthly';
import Schedule from './src/pages/Schedule';
import Listing from './src/pages/Listing';
import RoleScreen from './src/pages/Role';
import BookingPage from './src/pages/BookingPage';
import Onboard from './src/pages/helper/Onboard';
import Maid from './src/pages/helper/maid';
import Driver from './src/pages/helper/Driver';
import Electrician from './src/pages/helper/Electrician';
import Makeup from './src/pages/helper/Makeup';
import Language from './src/pages/helper/Language';
import JobPosting from './src/pages/JobPosting';
import Bidding from './src/pages/Bidding';
import HelperProfile from './src/pages/HelperProfile';
import Bookings from './src/pages/Bookings';
import ProfileMenu from './src/pages/ProfileMenu';
import HelperDashboard from './src/pages/helper/HelperDashboard';
import Jobs from './src/pages/helper/Jobs';
import Posts from './src/pages/helper/Posts';
import ProfileHelper from './src/pages/helper/ProfileHelper';
import SplashScreen from 'react-native-splash-screen';
import LocationUpdate from './src/pages/LocationUpdate';
import Current from './src/pages/Current';
import EditProfile from './src/pages/EditProfile';
import FilterModal from './src/pages/FilterModal';
import Ongoing from './src/pages/Ongoing';
import ScheduledB from './src/pages/ScheduledB';
import Active from './src/pages/helper/Active';
import Working from './src/pages/helper/Working';
import { useNavigation } from '@react-navigation/native';
import EditHelper from './src/pages/helper/EditHelper';
import AboutUs from './src/pages/AboutUs';
import i18n from './src/i18n';
import Wallet from './src/pages/helper/Wallet';

// Define Navigation Stack
const Stack = createNativeStackNavigator();

function App() {
  const [initialRoute, setInitialRoute] = useState<string | null>(null);

  useEffect(() => {
    const checkLogin = async () => {
      try {
        const userData = await AsyncStorage.getItem('userData');
        const helperData = await AsyncStorage.getItem('helperData');
        if (helperData) {
          const helper = JSON.parse(helperData);
          i18n.changeLanguage(helper.language);
          setInitialRoute('HelperDashboard');
        } else if (userData) {
          setInitialRoute('Dashboard');
        } else {
          setInitialRoute('Login');
        }
      } catch (e) {
        setInitialRoute('Login');
      } finally {
        SplashScreen.hide();
      }
    };
    checkLogin();
  }, []);

  return (
    <SafeAreaProvider>
      <NavigationContainer>
        <Stack.Navigator 
          initialRouteName={initialRoute || "Login"} 
          screenOptions={{ 
            headerShown: false, 
            animation: 'none', // Disable animations for stability
            freezeOnBlur: true // Prevent background screens from unmounting
          }} 
        >
          {/* Auth Screens */}
          <Stack.Screen name="Login" component={LoginScreen} />
          <Stack.Screen name="OtpScreen" component={OtpScreen} />
          <Stack.Screen name="CreateAccount" component={CreateAccount} />
          <Stack.Screen name="Role" component={RoleScreen} />
          <Stack.Screen name="Language" component={Language} />

          {/* Helper Onboarding Flow */}
          <Stack.Group screenOptions={{ gestureEnabled: false }}>
            <Stack.Screen name="Onboard" component={Onboard} />
            <Stack.Screen name="Active" component={Active} />
            <Stack.Screen name="Working" component={Working} />
            <Stack.Screen name="maid" component={Maid} />
            <Stack.Screen name="Driver" component={Driver} />
            <Stack.Screen name="Electrician" component={Electrician} />
            <Stack.Screen name="Makeup" component={Makeup} />
            <Stack.Screen name="HelperDashboard" component={HelperDashboard} />
            <Stack.Screen name="Jobs" component={Jobs} />
            <Stack.Screen name="Posts" component={Posts} />
            <Stack.Screen name="ProfileHelper" component={ProfileHelper} />
            <Stack.Screen name="EditHelper" component={EditHelper} />
            <Stack.Screen name="Wallet" component={Wallet} />
          </Stack.Group>

          {/* Main App Screens */}
          <Stack.Screen name="Dashboard" component={Dashboard} />
          <Stack.Screen name="OneTime" component={OneTime} />
          <Stack.Screen name="Monthly" component={Monthly} />
          <Stack.Screen name="Schedule" component={Schedule} />
          <Stack.Screen name="Listing" component={Listing} />
          <Stack.Screen name="BookingPage" component={BookingPage} />
          <Stack.Screen name="JobPosting" component={JobPosting} />
          <Stack.Screen name="Bidding" component={Bidding} />
          <Stack.Screen name="HelperProfile" component={HelperProfile} />
          <Stack.Screen name="Bookings" component={Bookings} />
          <Stack.Screen name="ProfileMenu" component={ProfileMenu} />
          <Stack.Screen name="LocationUpdate" component={LocationUpdate} />
          <Stack.Screen name="Current" component={Current} />
          <Stack.Screen name="EditProfile" component={EditProfile} />
          <Stack.Screen name="FilterModal" component={FilterModal} />
          <Stack.Screen name="Ongoing" component={Ongoing} />
          <Stack.Screen name="ScheduledB" component={ScheduledB} />
          <Stack.Screen name="AboutUs" component={AboutUs} />
        </Stack.Navigator>
      </NavigationContainer>
    </SafeAreaProvider>
  );
}

export default App;

目前我还在排查阶段,整理了几个可能的方向,也欢迎大家补充:

  • 核对第三方依赖(比如react-native-gesture-handler、@react-navigation/native)的版本是否和当前React Native版本兼容,建议查看各库官方文档确认匹配关系
  • iOS端可以进入ios目录执行pod deintegrate && pod install,彻底重装Pod依赖后再测试
  • Android端尝试清理构建缓存:运行./gradlew clean后重新构建项目
  • 检查是否开启了Hermes引擎,部分场景下Hermes的缓存可能引发这类问题,可以临时关闭Hermes测试
  • 确认项目中有没有自定义原生模块未正确注册,不过这个项目里主要用的都是主流库,暂时没涉及自定义模块

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.07 12:29:34