如何在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
相关产品推荐
相关产品推荐

