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

React Native组件通过Props实现基于产品标题的动态页面跳转

React Native产品卡片动态跳转实现方案

需求说明

开发一款从WordPress数据库拉取产品数据的React Native应用,首页通过FlatList展示产品卡片,需为每个卡片添加按钮,点击后动态跳转到对应产品页面。要求通过props传递参数实现跳转,跳转目标基于API返回的产品标题设置。当前SuitcaseItem组件的按钮固定跳转到"Evo L"页面,需改为根据产品标题动态跳转。

实现步骤

1. 传递导航实例与动态目标参数

在AllSuitcasesScreen的FlatList渲染项中,将导航实例navigation和产品标题作为跳转目标参数传给SuitcaseItem组件:

修改AllSuitcasesScreen中的FlatList代码:

<FlatList
  data={suitcases}
  renderItem={({ item }) => (
    <SuitcaseItem
      title={item.title.rendered}
      imageUri={{uri: 'https://www.samsonite.be/on/demandware.static/-/Sites/default/dw851ab6f0/images/misc/sams_share-image.jpg'}}
      desc={item.slug}
      buttonText={item.title.rendered}
      navigation={navigation} // 传递导航实例
      targetScreen={item.title.rendered} // 传递动态跳转页面名称
    />
  )}
/>

2. 修改组件内的跳转逻辑

在SuitcaseItem组件中,接收传入的navigation和targetScreen props,替换固定的跳转目标:

修改SuitcaseItem中的Pressable代码:

<Pressable style={styles.seeProduct} onPress={() => props.navigation.navigate(props.targetScreen)}>
  <Text style={styles.text}>Bekijk product: {props.buttonText}</Text>
</Pressable>

关键注意点

  • 确保导航栈中已注册所有产品标题对应的页面组件,否则会跳转失败。
  • 若产品标题含空格或特殊字符,建议先格式化处理(如转小写、替换空格为连字符),避免导航报错:
// 在AllSuitcasesScreen中处理标题
targetScreen={item.title.rendered.replace(/\s+/g, '-').toLowerCase()}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 11:35:20