Expo Router无法跳转基础页面:点击Link出现Unmatched Route问题
问题原因及解决方案
你的路由跳转失败核心是不符合expo-router的页面组件导出规则,具体修正点如下:
1. 页面组件必须使用默认导出
expo-router基于文件系统路由工作,要求每个页面文件的组件通过export default导出,而非命名导出(export function XXX)。
修改index.tsx:
import { Text } from "react-native"; // 也可从react-native-paper导入 import { Link } from "expo-router"; export default function Index() { return ( <> <Text>Index</Text> <Link href="/login">Login</Link> </> ); }
修改login.tsx:
import { Text } from "react-native-paper"; export default function Login() { return <Text>Login</Text>; }
2. 确认必要的导入
Link组件必须从expo-router导入,否则会导致路由跳转逻辑失效Text组件需从react-native或react-native-paper导入,避免未定义错误
3. 额外检查项
- 确保
tsconfig.json配置了expo-router的类型支持,示例配置如下:
{ "extends": "expo/tsconfig.base", "compilerOptions": { "strict": true, "paths": { "@/*": ["./*"] } }, "include": ["**/*.ts", "**/*.tsx", ".expo/types/**/*.ts", "expo-env.d.ts"] }
- 重启开发服务器,确保路由配置生效
内容的提问来源于stack exchange,提问作者jhamm
相关产品推荐
相关产品推荐

