类型为“查询”的字段“ markdownRemark”上的未知参数“ fields”

时间:2020-08-07 15:29:29

标签: reactjs graphql gatsby

我在访问fields的{​​{1}}属性时遇到麻烦,进入graghql游乐场时,我找不到markdownRemark fields

gatsby-node.js

const path = require(`path`) const { createFilePath } = require(`gatsby-source-filesystem`); exports.onCreate = ({ node, getNode, actions }) => { const { createNodeField } = actions if (node.internal.type === `MarkdownRemark`) { const slug = createFilePath({ node, getNode }) createNodeField({ node, name: `slug`, value: slug }) } } exports.createPage = ({ graphql, actions }) => { const { createPage } = actions return grapgh(` allMarkdownRemark { edges { node { fields { slug } } } } `).then(result => { result.data.allMarkdownRemark.edges.forEach(({node}) => { createPage({ path: node.fields.slug, component: path.resolve(`./src/templates/blog-post.js`), context: node.fields.slug }) }) }) }

gatsby-config.js

1 个答案:

答案 0 :(得分:0)

您应该使用:

const { createFilePath } = require(`gatsby-source-filesystem`)

exports.onCreateNode = ({ node, getNode, actions }) => {
  const { createNodeField } = actions
  if (node.internal.type === `MarkdownRemark`) {
    const slug = createFilePath({ node, getNode, basePath: `pages` })
    createNodeField({
      node,
      name: `slug`,
      value: slug,
    })
  }
}

请注意,您使用的是onCreate而不是onCreateNode API。有关Gatsby Node APIs的更多信息。从文档中:

在创建新节点时调用。希望扩展或扩展的插件 由其他插件创建的转换节点应实现此API。 另请参见createNodecreateNodeField的文档。