Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 盖茨比页面生成没有过滤掉slug_Javascript_Reactjs_Graphql_Gatsby - Fatal编程技术网

Javascript 盖茨比页面生成没有过滤掉slug

Javascript 盖茨比页面生成没有过滤掉slug,javascript,reactjs,graphql,gatsby,Javascript,Reactjs,Graphql,Gatsby,我正试图根据CMS(Sanity)中的数据生成盖茨比页面 我已经在我的CMS中创建了三个页面,在总括术语“第二页”下,我使用gatsby节点中的createPage生成具有正确段塞的页面 所有页面都是根据CMS中的slug生成的,但是在我的模板组件中,我无法过滤掉数据。当我只需要匹配slug的一个页面的结果时,我得到了所有三个页面的结果。secondPage.js中的My console.log显示了与我的CMS中的三个项目对应的三个数组 gatsby-node.js // Create pag

我正试图根据CMS(Sanity)中的数据生成盖茨比页面

我已经在我的CMS中创建了三个页面,在总括术语“第二页”下,我使用gatsby节点中的createPage生成具有正确段塞的页面

所有页面都是根据CMS中的slug生成的,但是在我的模板组件中,我无法过滤掉数据。当我只需要匹配slug的一个页面的结果时,我得到了所有三个页面的结果。secondPage.js中的My console.log显示了与我的CMS中的三个项目对应的三个数组

gatsby-node.js

// Create pages for docs
exports.createPages = ({ actions, graphql }) => {
  const path = require(`path`);
  const { createPage } = actions;
  //const docTemplate = path.resolve("src/templates/docTemplate.js");
  const secondPageTemplate = path.resolve("src/templates/secondPage.js");

  return graphql(`
    {

      allSanitySecondPage {
        edges {
          node {
            slug
          }
        }
      }
    }
  `).then((result) => {
    if (result.errors) {
      Promise.reject(result.errors);
    }

    result.data.allSanitySecondPage.edges.forEach(({ node }) => {
      createPage({
        path: node.slug,
        component: secondPageTemplate,
        context: {
          slug: node.slug,
        },
      });
    });
  });
};
secondPage.js(模板)

从“React”导入React;
从“盖茨比”输入{graphql};
从“./组件/布局”导入布局;
const BlockContent=require(“@sanity/block content to react”);
const secondPage=({data})=>{
//const pageData=data.sanitySecondPage.edges.node;
返回(
第二页大家好!
{console.log(data.sanitySecondPage)}
{/*  */}
);
};
export const query=graphql`
查询($slug:String!){
sanitySecondPage(slug:{eq:$slug}){
_原始块内容
}
}
`;
导出默认第二页;

事实证明,我所需要的只是写一篇堆栈溢出帖子来解决我自己的问题。一切都是正确的,我不理解块内容的返回,它应该是三个数组元素

import React from "react";
import { graphql } from "gatsby";
import Layout from "../components/layout";

const BlockContent = require("@sanity/block-content-to-react");

const secondPage = ({ data }) => {
  // const pageData = data.sanitySecondPage.edges.node;
  return (
    <Layout>
      <h1>Hello from the second page!</h1>
      {console.log(data.sanitySecondPage)}

      {/* <BlockContent blocks={pageData._rawBlockContent} /> */}
    </Layout>
  );
};

export const query = graphql`
  query($slug: String!) {
    sanitySecondPage(slug: { eq: $slug }) {
      _rawBlockContent
    }
  }
`;

export default secondPage;