Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

261
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda