React Navigation 路由传参的操作代码

 更新时间:2023年08月29日 10:15:08   作者:林中白虎  
这篇文章主要介绍了React Navigation 路由传参,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

页面之间传递参数

实现页面之间传递参数很简单,跟普通的 React 项目一样,具体实例入戏:

// 传入参数
export default function Home(props: { navigation: any }) {
  return (
    <View>
      <Text>Home</Text>
      <Button
        title="切换到详情页"
        onPress={() =>
          props.navigation.navigate("Detail Page", {
            itemId: 86,
            otherParam: "这是传递过来的参数",
          })
        }
      />
    </View>
  );
}
// 获取参数
export default function ReviewDetails(props: {
  navigation: any;
  route: { params: { itemId: number; otherParam: string } };
}) {
  return (
    <View>
      <Text>详情页</Text>
      <Text>itemId: {props.route.params.itemId}</Text>
      <Text>otherParam: {props.route.params.otherParam}</Text>
      <Button
        title="切换到详情页"
        onPress={() => props.navigation.push("Detail Page")}
      />
      <Button
        title="返回上一页"
        onPress={() => props.navigation.goBack()}
      ></Button>
      <Button
        title="清除所有堆栈信息返回首页"
        onPress={() => props.navigation.popToTop()}
      ></Button>
    </View>
  );
}

通过上述的例子可以看出我们实现参数的传递与获取只需要两部:

  • 通过将参数放入对象中作为函数的第二个参数来将参数传递给路由 navigation.navigate('RouteName', { 参数 })
  • 读取屏幕组件中的参数: route.params

传递初始参数

您可以将一些初始参数传递给屏幕,如果您在导航到此屏幕时未指定任何参数,则将使用初始参数。它们也与您传递的任何参数浅层合并。初始化参数可以在 Stack.Screen 组件中使用 initialParams 属性来实现。具体实例如下:

<Stack.Screen
  name="Detail Page"
  component={ReviewDetails}
  initialParams={{ itemId: 42 }}
/>

参数传递给上一级路由

参数不仅对于将一些数据传递到新屏幕有用,而且对于将数据传递到前一个屏幕也很有用。具体实例如下:

// 首页(接收创建文章页面回传回来的数据)
export default function Home(props: { navigation: any; route: any }) {
  React.useEffect(() => {
    if (props.route.params?.post) {
      console.log(props.route.params?.post);
    }
  }, [props.route.params?.post]);
  return (
    <View>
      <Text>Home</Text>
      <Text style={{ margin: 10 }}>
        添加文章页面传回的参数: {props.route.params?.post}
      </Text>
      <Button
        title="切换到详情页"
        onPress={() =>
          props.navigation.navigate("Detail Page", {
            itemId: 86,
            otherParam: "这是传递过来的参数",
          })
        }
      />
      <Button
        title="添加文章"
        onPress={() => props.navigation.navigate("CreateArticle")}
      ></Button>
    </View>
  );
}
// 创建文章
export default function CreateArticle(props: { navigation: any; route: any }) {
  const [postText, setPostText] = React.useState("");
  return (
    <View>
      <TextInput
        multiline
        placeholder="What's on your mind?"
        style={{ height: 200, padding: 10, backgroundColor: "white" }}
        value={postText}
        onChangeText={setPostText}
      />
      <Button
        title="完成"
        onPress={() => {
          props.navigation.navigate({
            name: "Home Page",
            params: { post: postText },
            merge: true,
          });
        }}
      />
    </View>
  );
}

通过上述的例子我们可以看到要把参数传递给上一级路由的方法跟我们普通传递参数的方法是一样的。

到此这篇关于React Navigation 路由传参的文章就介绍到这了,更多相关React 路由传参内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • react最流行的生态替代antdpro搭建轻量级后台管理

    react最流行的生态替代antdpro搭建轻量级后台管理

    这篇文章主要为大家介绍了react最流行的生态替代antdpro搭建轻量级后台管理示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • react时间分片实现流程详解

    react时间分片实现流程详解

    实现react时间分片,主要内容包括什么是时间分片、为什么需要时间分片、实现分片开启 - 固定、实现分片中断、重启 - 连续、分片重启、实现延迟执行 - 有间隔、时间分片异步执行方案的演进、时间分片简单实现、总结、基本概念、基础应用、原理机制和需要注意的事项等
    2022-11-11
  • react native与webview通信的示例代码

    react native与webview通信的示例代码

    本篇文章主要介绍了react native与webview通信的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • React useEffect、useLayoutEffect底层机制及区别介绍

    React useEffect、useLayoutEffect底层机制及区别介绍

    useEffect 是 React 中的一个 Hook,允许你在函数组件中执行副作用操作,本文给大家介绍React useEffect、useLayoutEffect底层机制及区别介绍,感兴趣的朋友一起看看吧
    2025-04-04
  • 图文示例讲解useState与useReducer性能区别

    图文示例讲解useState与useReducer性能区别

    这篇文章主要为大家介绍了useState与useReducer性能区别图文示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • React捕获并处理异常的方式

    React捕获并处理异常的方式

    这篇文章主要给大家介绍了React优雅的捕获并处理渲染异常方式,文章通过代码示例给大家介绍的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2023-11-11
  • create-react-app 修改为多入口编译的方法

    create-react-app 修改为多入口编译的方法

    这篇文章主要介绍了create-react-app 修改为多入口编译的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • react-router-dom v6版本跳转路径的实现方法

    react-router-dom v6版本跳转路径的实现方法

    这篇文章主要介绍了react-router-dom v6版本跳转路径的实现方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • react开发教程之React 组件之间的通信方式

    react开发教程之React 组件之间的通信方式

    本篇文章主要介绍了react开发教程之React组件通信详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • react执行【npx create-react-app my-app】出现常见错误的解决办法

    react执行【npx create-react-app my-app】出现常见错误的解决办法

    文章主要介绍了在使用npx创建React应用时可能遇到的几种常见错误及其解决方法,包括缺少依赖、网络问题和npx解析错误等,并提供了相应的解决措施,此外,还提到了使用腾讯云云产品来支持React应用开发
    2024-11-11

最新评论