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

如何在RTK Query的Mutation中POST含数组的数据?多表关联场景求助

解决RTK Query提交饮品ID数组的问题

首先,你当前代码的问题是在对象里重复声明了drinks_consumed字段,JS对象中重复键会被最后一个覆盖,而且你没有按要求传入数组格式,这才导致报错。RTK Query完全支持提交数组类型的参数,直接按正确的结构传参即可。

正确的传参方式

1. 硬编码数组示例

直接把drinks_consumed设为数组,不需要重复声明字段:

const onSaveDrinkerClicked = async () => {
  try {
    await addNewDrinker({ 
      firstname, 
      secondname, 
      drinks_consumed: [1, 2] // 直接传数组
    }).unwrap()
  } catch (err) {
    console.error('Failed to save the Drinker: ', err)
  }
}

2. 动态使用数组(遍历/动态生成场景)

如果你的饮品ID是来自某个动态数组(比如用户选择的列表),直接传入该数组即可,不需要额外遍历——因为后端需要的就是数组结构,直接传递数组本身就符合要求:

// 假设你有一个存储选中饮品ID的数组
const selectedDrinkIds = [1,3,4]

const onSaveDrinkerClicked = async () => {
  try {
    await addNewDrinker({ 
      firstname, 
      secondname, 
      drinks_consumed: selectedDrinkIds // 直接传动态数组
    }).unwrap()
  } catch (err) {
    console.error('Failed to save the Drinker: ', err)
  }
}

确认你的Mutation配置

你当前的createDrinker mutation写法是正确的,它会把传入的drinkerData完整作为请求体发送,只要后端接口能正确接收包含drinks_consumed数组的JSON数据,就能正常处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 06:18:28