es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Gatsby createTypes no crea localFile utilizando File.

Tengo un problema para ejecutar Gatsby cuando hay un campo en graphql que está vacío (en el cms a veces el campo estará vacío, a veces no). Logré solucionar este problema agregando en gatsby-node.js a través de createTypes el contenido faltante. Desafortunadamente, así como en el texto el tipo de cadena funciona bien, para la foto el subcampo de tipo File llamado localFile no se crea. Necesito que localFile aparezca incluso si no hay foto, de la misma manera que se agrega la foto. ¿Alguien tiene alguna idea de cómo solucionar esto? Muchas gracias de antemano por su ayuda.

gatsby-node.js:

exports.sourceNodes = ({ actions }) => {
const { createTypes } = actions
const typeDefs = ` type StrapiPageEstimateRealizations implements Node {
Title: String
Description: String
Img: File
}

`
createTypes(typeDefs)
}

graphql cuando el campo de la foto está vacío

graphql cuando se agrega una foto en el cms.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que estás enfrentando un problema donde el subcampo localFile no se está creando para los campos de fotos que están vacíos en GraphQL. Un enfoque para resolver esto podría ser hacer uso de la API onCreateNode de Gatsby en tu archivo gatsby-node.js.

    Puedes verificar si el tipo de nodo es StrapiPageEstimateRealizations y si el campo Img está vacío. Si es así, entonces crea un nuevo nodo con el subcampo localFile establecido en nulo o cualquier valor predeterminado que elijas.

    Aquí tienes un ejemplo de cómo puedes usar la API onCreateNode:

    exports.onCreateNode = ({ node, actions }) => {
      const { createNode } = actions;
      if (node.internal.type === 'StrapiPageEstimateRealizations' && !node.Img) {
        createNode({
          ...node,
          Img: {
            localFile: null // o establecer cualquier valor predeterminado de tu elección
          }
        });
      }
    };
    

    Esto debería crear un nuevo nodo con el subcampo localFile incluso si no hay una foto presente en el campo Img.

    ¡Espero que esto ayude! Avísame si tienes alguna pregunta adicional.

Comments are closed.