亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我可以將兩個對象傳遞給 createPage 中的上下文嗎?

我可以將兩個對象傳遞給 createPage 中的上下文嗎?

海綿寶寶撒 2022-07-01 17:01:02
我的博客將在每個帖子上顯示作者的圖片和姓名,并且要讓模板加載正確的模板,我需要通過上下文傳遞一個值。問題是 $slug 已經是 gatsby-node 中 blogPage 函數的對象。像這樣的東西:const path = require(`path`)const _ = require("lodash")exports.createPages = async ({ actions, graphql, reporter }) => {  const { createPage } = actions  const blogPostTemplate = path.resolve(`src/templates/blogPost.js`)  const autorPageTemplate = path.resolve(`src/templates/autorPage.js`)  const tagTemplate = path.resolve(`src/templates/tags.js`)  const catTemplate = path.resolve(`src/templates/categories.js`)  const result = await graphql(`    {      blogPost: allMarkdownRemark(        filter: {          frontmatter: {            type: {              eq: "blog-post"            }          }        },        sort: {           order: DESC,           fields: [            frontmatter___date          ]         },        limit: 1000      ) {        edges {          node {            fields {              slug            }          }        }      }      autorPage: allMarkdownRemark(        filter: {          frontmatter: {            type: {              eq: "autor"            }          }        }      ) {        edges {          node {            frontmatter {              name            }          }        }      }      tagsGroup: allMarkdownRemark(limit: 2000) {        group(field: frontmatter___tags) {          fieldValue        }      }      categoriesGroup: allMarkdownRemark(limit: 2000) {        group(field: frontmatter___categories) {          fieldValue        }      }    }  `)  // Handle errors  if (result.errors) {    reporter.panicOnBuild(`Error while running GraphQL query.`)    return  }
查看完整描述

2 回答

?
慕的地10843

TA貢獻1785條經驗 獲得超8個贊

您正在通過上下文正確傳遞變量,但您需要刪除變量中的感嘆號$author!(這意味著不可為空)。您的代碼應如下所示:


query($slug: String!, $autor: String) {

    markdownRemark(fields: { slug: { eq: $slug }}, 

      frontmatter: { 

        type: { 

          eq: "blog-post"

          } 

        } 

      ) {

      html

      id

      fields {

        slug

      }

      frontmatter {

        date(formatString: "DD MMMM YYYY")

        path

                title

                categories

                tags

        featuredImage {

          childImageSharp {

            fluid(maxWidth: 1200) {

              ...GatsbyImageSharpFluid

            }

          }

        }                               

      }

    }

    allMarkdownRemark(

      filter: {

        frontmatter: {type: {eq: $autor}}}, 

      limit: 1

    ) {

    edges {

      node {

        html

        excerpt(format: PLAIN, pruneLength: 200)

        frontmatter {

          name

          avatar {

            childImageSharp {

              fluid {

                ...GatsbyImageSharpFluid

              }

            }

          }

          slug

          e_mail

        }

      }

    }

  }

}

您可以在此處查看有關 GraphQL 模式和類型的更多信息 。


查看完整回答
反對 回復 2022-07-01
?
ABOUTYOU

TA貢獻1812條經驗 獲得超5個贊

您在查詢中缺少作者


    query($slug: String!, $autor: String) {

    markdownRemark(

      fields: { 

        slug: { 

          eq: $slug 

        } 

      }, 

      frontmatter: { 

        type: { 

          eq: "blog-post"

          } 

        } 

      ) {

      html

      id

      fields {

        slug

      }

      frontmatter {

        date(formatString: "DD MMMM YYYY")

        path

        title

        categories

        tags

        featuredImage {

          childImageSharp {

            fluid(maxWidth: 1200) {

              ...GatsbyImageSharpFluid

            }

          }

        }                               

      }

    }

    allMarkdownRemark(

      filter: {

        frontmatter: {

          type: {

            eq: "autor" 

          },

        }

      }, 

      limit: 1

    ) {

    edges {

      node {

        html

        excerpt(format: PLAIN, pruneLength: 200)

        frontmatter {

          name

          avatar {

            childImageSharp {

              fluid {

                ...GatsbyImageSharpFluid

              }

            }

          }

          slug

          e_mail

        }

      }

    }

  }


查看完整回答
反對 回復 2022-07-01
  • 2 回答
  • 0 關注
  • 129 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號