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实现antdM的级联菜单实例

    React实现antdM的级联菜单实例

    这篇文章主要为大家介绍了React实现antdM的级联菜单实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10
  • React Hooks常用钩子及基本原理解读

    React Hooks常用钩子及基本原理解读

    这篇文章主要介绍了React Hooks常用钩子及基本原理,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10
  • 一文带你深入理解React中的Context

    一文带你深入理解React中的Context

    React Context是React提供给开发者的一种常用的状态管理机制,本文主要来和大家讲讲为什么需要Context,又是如何使用Context的,感兴趣的可以了解一下
    2023-05-05
  • 封装一个最简单ErrorBoundary组件处理react异常

    封装一个最简单ErrorBoundary组件处理react异常

    这篇文章主要介绍了一个处理react异常的ErrorBoundary组件,简单实用,代码详细,对这个组件感兴趣的朋友可以参考下
    2021-04-04
  • react+antd+upload结合使用示例

    react+antd+upload结合使用示例

    这篇文章主要为大家介绍了react+antd+upload结合使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • ReactQuery系列React Query 实践示例详解

    ReactQuery系列React Query 实践示例详解

    这篇文章主要为大家介绍了ReactQuery系列React Query 实践示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • React 组件性能最佳优化实践分享

    React 组件性能最佳优化实践分享

    这篇文章主要介绍了React组件性能最佳优化实践分享,React组件性能优化的核心是减少渲染真实DOM节点的频率,减少Virtual DOM比对的频率,更多相关内容需要的朋友可以参考一下
    2022-09-09
  • react native reanimated实现动画示例详解

    react native reanimated实现动画示例详解

    这篇文章主要为大家介绍了react native reanimated实现动画示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • create-react-app使用antd按需加载的样式无效问题的解决

    create-react-app使用antd按需加载的样式无效问题的解决

    这篇文章主要介绍了create-react-app使用antd按需加载的样式无效问题的解决,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-02-02
  • 深入了解响应式React Native Echarts组件

    深入了解响应式React Native Echarts组件

    近年来,随着移动端对数据可视化的要求越来越高,通过 WebView 在移动端使用 Echarts 这样功能强大的前端数据可视化库,是解决问题的好办法。下面就和小编来一起学习一下吧
    2019-05-05

最新评论