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

React中如何从函数值动态传递参数到GraphQL变量?

解决动态设置GraphQL变量参数名的问题

你可以利用ES6的计算属性名特性来实现动态设置variables中的参数名,具体修改如下:

修改后的fetchData函数:

const fetchData = async (url, query, param, variable) => {
  return await axios.post(url, {
    query: query,
    variables: { [param]: variable } // 用方括号包裹param变量,实现动态键名
  })
};

原理说明

ES6的计算属性名允许在对象字面量中使用表达式作为属性名,把param变量放在方括号[]内后,JavaScript会自动将param的实际值解析为对象的键名,而非把param作为固定字符串键。

使用示例

比如调用函数时传入param: "userId"、variable: 123:

fetchData('/graphql', yourQuery, 'userId', 123)

此时请求体中的variables会被解析为:

{ "userId": 123 }

完全满足动态参数名的需求。

内容的提问来源于stack exchange,提问作者Devil's Dream

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 22:45:37