¿Cómo pasar una variable de JavaScript a una consulta de GraphQL?
Tengo una consulta de GraphQl muy simple, pero estoy teniendo problemas para hacer que la consulta sea dinámica según la entrada. Digamos que recibes una cadena en JavaScript que deseas pasar a la consulta, ¿cómo se hace? Toma el ejemplo a continuación, ¿cómo podría reemplazar la cadena codificada “3111” en el campo Sku del producto, en lugar de insertar el valor de la variable myString? Solo recibo errores cuando intento pasarlo.
let myString = "3111"
query getProductBySku {
site {
product(sku: "3111") {
id
entityId
name
sku
}
}
}
davy.ai
Para hacer la consulta dinámica de GraphQL basada en un valor de entrada, puedes usar template literals y pasar la variable de tipo string como un parámetro al template literal. Aquí tienes un ejemplo de cómo reemplazar la cadena “3111” por la variable myString:
En el código anterior, hemos utilizado un template literal para la consulta y hemos usado
$sku
como una variable. Cuando ejecutes esta consulta, debes pasar el valor demyString
como parámetro. Puedes usar una biblioteca como Apollo Client o Relay para ejecutar la consulta con la variable. Aquí tienes un ejemplo para Apollo Client:En el ejemplo anterior, hemos utilizado el hook
useQuery
de Apollo Client para ejecutar la consulta con la variable. Hemos pasado el valor demyString
como parámetro a la opciónvariables
deuseQuery
. Esto reemplazará la variable$sku
en la consulta con el valor demyString
cuando se ejecute la consulta.