首页 文章

从盖茨比中删除节点

提问于
浏览
0

我'm using a plugin that automatically creates nodes for me from an API request. It'运行良好,但它返回的数据超出了我的需要,包括在 gatsby-node onCreateNode 中的't relevant for my application. How can I remove nodes while I' m的节点?

例如 . 我只想拥有带 Headers 的节点 . 如果它有 Headers ,我想保留它,并添加一个字段 . 如果没有,我想删除它 . 这是正确识别节点类型:

if(node.internal.type === `community_education__classes` && node.title && node.title._t) {
  const correctedClassObject = classCorrector(node.content._t);
  createNodeField({
    node,
    name: `className`,
    value: node.title._t,
  });
}

所以我可以找到我想要删除的节点

if(node.internal.type === `community_education__classes` && (!node.title || !node.title._t)) {
  // need code to delete node that matched these conditions
}

我希望有一个盖茨比API,我找不到?

1 回答

  • 3

    你可以使用Gatsby的deleteNode,这是 actions fka boundActionCreators 的一部分 .

    exports.onCreateNode = ({ node, boundActionCreators }) => {
      const { deleteNode } = boundActionCreators;
    
      // Check the node, delete if true.
      if (condition) {
        deleteNode(node.id, node);
      }
    }
    

相关问题