Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

260
Vistas
Error: valor esperado del tipo 'String!' pero el valor no está definido

Usé este código en mi aplicación Stelve Kit. Quiero enviar el correo electrónico para consultar datos de graphql. Intento usar este código pero me da error.

 <script lang="js"> import { gql, operationStore, query, setClient } from '@urql/svelte'; import client from '../client'; setClient(client); import { userSession } from '../store.js'; let user; userSession.subscribe((val) => { user = val; }); console.log("user = "); console.log(user.id); console.log(user.email); const postsQuery = gql` query GetAllPosts($size: Int!, $cursor: String, $email: String!) { GetPostByUsersEmail(_size: $size, _cursor: $cursor, email: $email) { data { email username posts { data { title } } } } } ` const allPosts = operationStore( postsQuery, { size: 100 }, { requestPolicy: 'network-only' }, { email: 'test@email.com' } ) query(allPosts); console.log(allPosts) </script>

con esquema

 type User @auth(primary: "email") { username: String! email: String! posts: [Post!] @relation } type Post @protected(membership: "User", rule: ["read", "write", "create"]) { title: String! content: String! author: User! } type Query { listPosts: [Post] users(username: String!): [User] posts(title: String!): [Post] GetPostByUsersEmail(email: String!): [User] }

Creo que todo está bien, pero los datos de allPosts no se adjuntan y obtuve este error de datos de console.log (allPosts)

 GraphQLError: Variable '$email' expected value of type 'String!' but value is undefined.

Alguien puede ayudar ?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Hay varias cosas mal en su código.

En lo que respecta a su error, su llamada a operationStore está mal formateada. El primer argumento debe ser su consulta con formato gql (que lo es), el segundo argumento espera un objeto que contenga todas sus variables y el tercer argumento espera un objeto de opciones ( requestPolicy , etc.). Sin embargo, intenta pasar sus variables en dos argumentos separados (2º y 4º). Entonces su llamada a operationStore debería ser:

 const allPosts = operationStore( postsQuery, { size: 100, email: 'test@email.com' }, { requestPolicy: 'network-only' }, )

Esto solucionaría su error inicial. Sin embargo...

Además, su consulta del lado del cliente no coincide con la definición de su esquema. Las variables _size y _cursor no existen en su esquema, y agregó claves de data extraños en su solicitud que no coinciden con sus tipos de esquema de User y Post . Tu consulta debe ser:

 const postsQuery = gql` query GetAllPosts($email: String!) { GetPostByUsersEmail(email: $email) { email username posts { title } } } `

Y, por lo tanto, su llamada operationStore final y modificada debería ser:

 const allPosts = operationStore( postsQuery, { email: 'test@email.com' }, { requestPolicy: 'network-only' }, )
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda