javascript - 在最新版本的 Gatsby 的 gatsby-node.js 中找不到 getNode() 方法

标签 javascript reactjs gatsby

正在学习 Gatsby 官方教程 here 。直到第 7 步,一切都 100% 正常。在第 7 步“以编程方式从数据创建页面”中,为 gatsby-node.js 列出了此代码段(按原样,不导入):

exports.onCreateNode = ({ node }) => {
  if (node.internal.type === `MarkdownRemark`) {
    const fileNode = getNode(node.parent)
    console.log(`\n`, fileNode.relativePath)
  }
}

但是,当运行gatsbydevelop时,我得到:ReferenceError:getNode未定义。我在谷歌上搜索了很长一段时间,似乎最新版本的 Gatsby 最近可能发生了一些重大变化。有谁知道这可能是什么原因以及如何修复丢失的引用?也许应该导入一些模块?

最佳答案

刚刚找到答案。这是我自己的错字。我没有将第二个 getNode 参数添加到 onCreateNode 函数中:

exports.onCreateNode = ({ node, getNode }) => {
  if (node.internal.type === `MarkdownRemark`) {
    const fileNode = getNode(node.parent)
    console.log(`\n`, fileNode.relativePath)
  }
}

关于javascript - 在最新版本的 Gatsby 的 gatsby-node.js 中找不到 getNode() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53870443/

相关文章:

javascript - 在空对象 Javascript 中分配属性默认值

javascript - angularjs - 从输入选择中删除选项

Gatsby 构建错误 "document is not defined"仅在 Netlify 上

graphql - Gatsby GraphQL 无法在 Strapi 的类型 "url"上查询字段 "File"

javascript - 可折叠列表

javascript - 当页面上出现类时触发 <script src =""

node.js - 如何解决: "TypeError: Cannot read property ' map' of undefined"

javascript - 如何使用 react-route 链接刷新页面

reactjs - 在 TextField 类型 ="number"上设置最小值/最大值?

gatsby - 如何使用 React-three-fiber 添加 Stats.js 到 Gatsby 站点?