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

React Native页面间传值:跨页收集表单参数并拼接JSON请求体咨询

React Native跨页面传值实现方案

前置修正

你预期的types:[type1:"a", type2:"b"]存在语法错误,数组无法存储键值对,需改为对象格式,对应状态初始化也需要调整:

// 屏幕1状态定义修正
const [Name, setName] = useState("")
const [Email, setEmail] = useState("")
// types改为对象类型,初始化值为空
const [Types, setTypes] = useState({type1: "", type2: ""})

// 最终请求体正确写法
body: JSON.stringify({
  name: Name,
  email: Email,
  types: Types
})

屏幕1 Types按钮onPress编写

利用React Navigation的路由参数传递回调函数,用于接收屏幕2返回的选中值:

<Button 
  onPress={() => navigation.navigate("screen_2", {
    // 传递更新types状态的回调给屏幕2
    onSave: (selected) => setTypes(selected)
  })}
>
  Types
</Button>

屏幕2 相关逻辑实现

屏幕2状态与参数获取

// 屏幕2内先定义两个下拉框的绑定状态
const [type1Val, setType1Val] = useState("")
const [type2Val, setType2Val] = useState("")
// 从路由参数中拿到屏幕1传过来的回调方法
const { onSave } = route.params

SAVE按钮onPress编写

<Button
  onPress={() => {
    // 组装选中的类型数据
    const selectedTypes = {
      type1: type1Val,
      type2: type2Val
    }
    // 调用回调更新屏幕1的types状态
    onSave(selectedTypes)
    // 返回到屏幕1
    navigation.goBack()
  }}
>
  SAVE
</Button>

请求体更新逻辑

屏幕1的Types状态会被屏幕2传过来的回调自动更新,你发起请求时直接使用当前的Types状态即可,不需要额外修改请求体生成逻辑,状态更新后对应字段会自动同步最新值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 11:24:02