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

Sanity.io GROQ动态构造patch查询 模板字符串作字段名报错如何解决

问题原因

该报错是JavaScript对象字面量的语法错误:如果需要使用动态计算的内容作为对象的键,必须将对应表达式放在方括号[]中包裹。你直接把模板字符串写在对象键的位置,JS解析器无法识别反引号作为对象键的开头,就会抛出Unexpected token错误。

正确实现代码
patch: {
  id: "f6c46b53-9313-4354-a4d6-7a40b06ee4c0",
  set: {
    [`rewardItem[_key == "${key}"].lastTimeReward`]: "Test",
  },
}
注意事项
  • 方括号[]会先计算内部的模板字符串结果,再将结果转为字符串作为set对象的键,最终生成的结构和你使用固定值的可运行代码完全一致
  • 模板字符串内部的双引号不需要额外加反斜杠转义,写法更简洁
  • 如果key变量来自用户输入,建议提前做格式校验,避免构造出非法的Sanity查询路径

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 08:54:03