作者:w3812127 | 来源:互联网 | 2022-12-07 14:46
我试图想出一种方法来传递一个字符串数组并将其嵌入到查询中(使用React,GraphQL).问题是它接受参数作为字符串数组,但在嵌入时将其转换为字符串.
假设我有这个函数调用来获取一些数据.(我现在对这个论点进行了硬编码,但是一旦我弄清楚它就会变成一个变量).
//这里我正在调用这个函数
const query = getData.generate(["123", "456"]);
return GraphqlClient.query(query)
.then((e) => {
return e.data.oneAppProviders;
}) .......
//这里是带有嵌入参数的查询.(后端需要一个字符串数组.)
export default {
generate(id) {
// console.log(id) // output: ["123", "456"]
return { query : gql`{
oneAppProviders(id: ${id}) {
id
firstName
}
}
}}
当我运行它时,我收到此错误:
GraphQLError {message: "Syntax Error: Expected Name, found Int "456""
我想,当我嵌入它时,它将它转换为整数...如果我的数组是["123"],我会收到以下错误:
[GraphQL error]: Message: Expected type [String], found 123.
我希望这个问题足够清楚.提前致谢.
1> 小智..:
解决您问题的简单方法如下:
let myarray = ["string1", "string2", "String3"];
let dataToSend = myarray.toString();
let gql`
{
passArray(data:${dataToSend}){
}
}`;