Что-то пошло не так, и запрос остался в скомпилированном коде
Начал изучать Гэтсби, следуя руководству 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
}
}
}
}
}
`