Expo(SDK 51)中expo-router/entry.js无法识别app/_layout.tsx求助
Expo Router 无法识别 _layout.tsx,自动生成的 index.tsx 修改无效
我使用Expo默认模板开发项目已有一周,一直以app目录下的_layout.tsx作为入口组件,代码如下:
import { Stack } from "expo-router"; import { StatusBar } from "expo-status-bar"; import { LogBox } from "react-native"; LogBox.ignoreAllLogs(true); const RootLayout = () => { return ( <> <StatusBar style="light" /> <Stack> <Stack.Screen name="(tabs)" options={{ headerShown: false }} /> </Stack> </> ); } export default RootLayout;
昨日启动Metro Server时,Expo在app目录自动生成了index.tsx文件,启动后显示默认的Hello World界面。修改该index.tsx文件无任何效果,且找不到该界面的组件代码,疑似expo-router/entry.js未识别我的_layout.tsx或新生成的index.tsx。
以下是我的package.json信息:
{"name": "testproject", "main": "expo-router/entry", "version": "1.0.0", "scripts": { "start": "expo start", "reset-project": "node ./scripts/reset-project.js", "android": "expo start --android", "ios": "expo start --ios", "web": "expo start --web", "lint": "expo lint" }, "dependencies": { "@expo/vector-icons": "^14.0.2", "@react-navigation/native": "^6.1.18", "@react-navigation/native-stack": "^6.11.0", "@react-navigation/stack": "^6.4.1", "axios": "^1.7.7", "expo": "~51.0.28", "expo-constants": "~16.0.2", "expo-device": "^6.0.2", "expo-document-picker": "~12.0.2", "expo-file-system": "~17.0.1", "expo-font": "~12.0.9", "expo-linking": "~6.3.1", "expo-router": "~3.5.23", "expo-splash-screen": "~0.27.5", "expo-status-bar": "~1.12.1", "expo-system-ui": "~3.0.7", "expo-web-browser": "~13.0.3", "firebase": "^11.0.1", "react": "18.2.0", "react-dom": "18.2.0", "react-native": "0.74.5", "react-native-dotenv": "^3.4.11", "react-native-gesture-handler": "~2.16.1", "react-native-reanimated": "~3.10.1", "react-native-safe-area-context": "4.10.5", "react-native-screens": "3.31.1", "react-native-web": "~0.19.10" }, "devDependencies": { "@babel/core": "^7.20.0", "@types/react": "~18.2.45", "@types/react-native": "^0.72.8", "@types/react-test-renderer": "^18.0.7", "react-test-renderer": "18.2.0", "typescript": "~5.3.3" }, "private": true }
我已尝试的解决方法:
- 执行
expo start -c清除缓存 - 在
app.json中指定entryPoint:{"expo": { "entryPoint": "./app/_layout.tsx" } } - 将
_layout.tsx重命名为_app.tsx或index.js - 参考Expo Router v3无法识别自定义入口文件中
_layout.tsx的相关问题但未解决
内容的提问来源于stack exchange,提问作者ArmandPret-OW
相关产品推荐
相关产品推荐

