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

使用Expo Router的Link组件报错:Cannot read property 'isReady' of undefined

问题分析与解决方案

这个TypeError: Cannot read property 'isReady' of undefined错误,本质是Expo Router的Link组件无法获取到导航上下文(Navigation Context)导致的,通常有以下几个原因和对应解决办法:

  • Link组件脱离了导航上下文
    Expo Router的Link依赖全局的导航上下文来工作,而你自定义的navigationView可能没有嵌套在Expo Router提供的上下文环境中(比如根布局app/_layout.js的导航结构之外)。

    解决办法:改用useRouter钩子手动实现跳转,替代Link组件。代码示例:

    import { useRouter } from 'expo-router';
    import { TouchableOpacity, Text } from 'react-native';
    
    const navigationView = () => {
      const router = useRouter();
    
      return (
        <View style={[styles.container, styles.navigationContainer]}>
          <Text style={styles.paragraph}>I'm in the Drawer!</Text>
          <Button
            title="Close drawer"
            onPress={() => drawer.current.closeDrawer()}
          />
          <TouchableOpacity
            style={styles.navigationLink}
            onPress={() => {
              // 先关闭抽屉再跳转
              drawer.current.closeDrawer();
              router.push('/screens/HomeScreen');
            }}
          >
            <Text>Home</Text>
          </TouchableOpacity>
        </View>
      );
    };
    
  • 抽屉组件未正确集成到Expo Router导航结构
    如果你是手动实现的抽屉(比如用DrawerLayoutAndroid),而非使用Expo Router内置的抽屉导航配置,那么抽屉内容视图不会自动继承导航上下文。

    解决办法:改用Expo Router官方推荐的抽屉导航配置。在app/_layout.js中设置抽屉布局:

    import { Drawer } from 'expo-router/drawer';
    
    export default function RootLayout() {
      return (
        <Drawer>
          <Drawer.Screen name="screens/HomeScreen" options={{ title: 'Home' }} />
          // 其他页面路由
        </Drawer>
      );
    }
    

    这种方式下,抽屉菜单会自动由Expo Router管理,Link组件可以正常工作。

  • Expo Router版本兼容性问题
    旧版本的expo-router可能存在抽屉环境下Link组件的bug,建议升级到最新稳定版:

    npx expo install expo-router@latest expo@latest
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 16:13:22