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

React Native切换路由后组件不渲染问题求助

React Native栈导航无法跳转的解决方法

你的栈导航点击按钮后页面不切换,核心问题是Home组件未获取到navigation对象,导致navigation.navigate('About')无法执行(虽然控制台未抛出明显异常,但实际navigation变量未定义)。

方法一:直接通过组件参数接收navigation

修改Home组件,在函数参数中解构出navigation:

export function Home({ navigation }) {
  return (
    <View style={styles.container}>
      <Text>Welcome!</Text>

      <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
        <Text>Home Screen</Text>
        <Button
          title="Go to About"
          onPress={() => {
            navigation.navigate('About')
          }}
        />
      </View>
    </View>
  );
}

方法二:使用useNavigation钩子

如果组件层级较深,或者不想通过参数传递,可以使用React Navigation提供的useNavigation钩子:

import { useNavigation } from '@react-navigation/native';

export function Home() {
  const navigation = useNavigation();
  return (
    <View style={styles.container}>
      <Text>Welcome!</Text>

      <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
        <Text>Home Screen</Text>
        <Button
          title="Go to About"
          onPress={() => {
            navigation.navigate('About')
          }}
        />
      </View>
    </View>
  );
}

修改完成后,点击"Go to About"按钮就能正常跳转到About页面了。

内容的提问来源于stack exchange,提问作者Node.JS

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 04:30:58