Apollo-link-rest: Ejemplo de React-Apollo roto

Creado en 7 jun. 2018  ·  6Comentarios  ·  Fuente: apollographql/apollo-link-rest

Hola:

Recién estoy comenzando con apollo-link-rest con la configuración básica en su caja react-apollo códigos react-apollo .

En lugar de mostrar la lista de programas de televisión, la interfaz muestra el siguiente error: : Network error: Failed to execute 'fetch' on 'Window': Invalid credentials mode .

Al replicar ese código en mi propio entorno create-react-app , también detecté el siguiente error al ejecutar una solicitud en Apollo DevTools:

{
  "errors": [
    {
      "message": "forward is not a function",
      "locations": [
        "TypeError: forward is not a function\n    at RestLink../node_modules/apollo-link-rest/bundle.umd.js.RestLink.request (http://localhost:3000/static/js/bundle.js:21028:20)\n    at http://localhost:3000/static/js/bundle.js:19809:33\n    at ApolloLink.request (http://localhost:3000/static/js/bundle.js:17407:12)\n    at ApolloLink.request 
    }
  ]
}

¡Muchas gracias por tu trabajo en este enlace! Hace que trabajar con REST sea mucho más manejable al brindar características similares a GraphQL para aquellos de nosotros que estamos atrapados con las API REST.

help wanted 🛠 question❔

Comentario más útil

Debería arreglarse en v0.3.1 - ¡ahora disponible!

Todos 6 comentarios

@sinisterra Cuando vemos forward is not a function en nuestra aplicación, generalmente es porque olvidamos una directiva @client o @rest(…) en uno de los nodos. ¿Es ese el caso para ti?

Con respecto a su error con fetch , ¿en qué navegador está probando?

@fbartho No, estoy ejecutando exactamente la misma consulta del ejemplo, la directiva @rest se está aplicando correctamente. Estoy usando Google Chrome 67.0.3396.62. Cuando intenté ejecutar el ejemplo en Firefox 60.0.1, también falló pero con un error diferente: Network error: 'credentials' member of RequestInit 'null' is not a valid value for enumeration RequestCredentials.

¡No se trata solo del ejemplo roto! Creo que este tema es muy crítico.
También recibo el mismo error en este momento, en mi entorno de producción, que funcionó bien los últimos meses usando apollo-link-rest. Supongo que esto se debe a una actualización del navegador.
Estoy usando chrome Version 67.0.3396.79 (Official Build) (64-bit)

El mismo problema está sucediendo en Safari y Firefox .. No entiendo totalmente tbh .. La misma versión de mi aplicación funcionaba bien desde el 24 de mayo.

solo está sucediendo con las solicitudes que hago con apollo-link-rest, aunque he configurado mi customFetch fn, que está funcionando. ¯_ (ツ) _ / ¯

También recibo el mismo error cuando elimino mi customFetch config.

De hecho, encontré el problema.
Estoy usando una función customFetch , que es llamada por apollo-link-rest con el parámetro de opciones credentials: null . Esto está causando este error con todos los navegadores, incluida la nueva versión de Chrome.

mi solución rápida para mi función de búsqueda personalizada ya que no estoy usando credenciales es la siguiente:

export function fetchWithAuth(url, options = {}) {
  // this fixes apollo-link-rest providing credentials: null options
  const { credentials, ...opt } = options
  return fetch(url, getOptions(opt));
}

También me estaba golpeando la cabeza contra la pared, obteniendo "Error de red: no se pudo recuperar", lo que impedía que la consulta se ejecutara incluso con apollo-link-rest. @JuHwon tiene razón, esto parece estar vinculado a la opción de credenciales en el constructor RestLink. Si bien anteriormente funcionaba como opcional según la documentación, ahora solo puedo hacer que funcione después de incluir la opción así:

const restLink = new RestLink({  
  uri: ${process.env.REACT_APP_API_URL}/,  
  credentials: 'same-origin',  // eg. or credentials: 'omit', etc
});

Debería arreglarse en v0.3.1 - ¡ahora disponible!

¿Fue útil esta página
0 / 5 - 0 calificaciones