Что-то пошло не так, и запрос остался в скомпилированном коде

Начал изучать Гэтсби, следуя руководству YouTube . Я следил за каждым шагом, как показано в руководстве. Итак, я нахожусь на этапе создания страницы со списком постов.

На странице списка сообщений будет 3 сообщения, а остальные будут доступны через разбиение на страницы. И он будет отсортирован по убыванию.

Я получаю сообщение об ошибке, как показано ниже:

      function graphql() {
> 93 |   throw new Error(
     |        ^
  94 |     `It appears like Gatsby is misconfigured. Gatsby related \`graphql\` calls ` +
  95 |       `are supposed to only be evaluated at compile time, and then compiled away. ` +
  96 |       `Unfortunately, something went wrong and the query was left in the compiled code.\n\n` +

файл gatsby-node.js:

      exports.createPages = async function({actions, graphql}){
    const {data} = await graphql(`
        query {
            allMdx(sort: {fields: frontmatter___date, order: DESC}) {
                edges {
                    node {
                    frontmatter {
                        slug
                    }
                    id
                    }
                }
            }
        }
    `)

    //Create paginated pages for posts
    const postPerPage = 3

    const numPages = Math.ceil(data.allMdx.edges.length / postPerPage)

    Array.from({ length: numPages }).forEach((_, i) => {
        actions.createPage({
            path: i === 0 ? `/` : `/${ i+1 }`,
            component: require.resolve("./src/templates/allPosts.js"),
            context: {
                limit: postPerPage,
                skip: i * postPerPage,
                numPages, 
                currentPage: i + 1,
            },
        })
    })

    // //Create Single blog posts
    // data.allMdx.edges.forEach(edge => {
    //     const slug = edge.node.frontmatter.slug,
    //     const id = edge.node.id
    //     actions.createPages({
    //         path: slug,
    //         component: require.resolve(`./src/templates/singlePost.js`),
    //         context: {id},
    //     })
    // })

}

1 ответ

В allPosts.js запрос должен быть таким: graphql вместо graphql( { your_query }).

      export const pageQuery = graphql`
    query AllPostsQuery($skip: Int!, $limit:Int!){
        allMdx(sort: {fields: frontmatter___date, order: DESC}, skip: $skip, limit: $limit) {
            edges {
                node {
                frontmatter {
                    slug
                    title
                    date(formatString: "MMMM DD, YYYY")
                    excerpt
                }
                }
            }
        }
    }
`
Другие вопросы по тегам