Где определять переменные в GraphQL

Простите этого новичка. Я хочу перечислить некоторые статьи на основе их категорий, теперь у меня есть страница категорий, где вы выбираете категорию, должен открыться список статей в этой конкретной категории. Вопрос в том, где определить переменную для слага [который соответствует категории статьи]. Где определить переменную $ slug, которая равна категории, учитывая, что я пришел со страницы категорий, это должен быть почтовый запрос, который отправляет выбранную категорию, я должен поместить его где-нибудь на этой странице, может ли кто-нибудь направить меня, если я сделаю что-нибудь смысл здесь ?! Заранее спасибо.

    const EduCatTemp = ({data}) => {
        const {allStrapiEducations:{nodes:educations}} = data
        return (
            <Layout>
                {
                educations.map((education)=> {
                    return (
                       <p>{education.title}</p>
                    )
                })
    }
            </Layout>
        )
    }
    
    export default EduCatTemp
    
    export const query = graphql`
      {
        allStrapiEducations(filter: {education_category: {slug: {eq: $slug}}}) {
          nodes {
            title
          }
        }
      }

Вот мой файл gatsby-node.js

educations: allStrapiEducations {
          nodes {
              slug
          }
      }
education_categories: allStrapiEducationCategories {
        nodes {
            slug
        }
    }
result.data.educations.nodes.forEach(education => {
    createPage({
      path: `/education/${education.slug}`,
      component: path.resolve(`src/templates/education-template.js`),
      context: {
        slug: education.slug,
      },
    })
  })
  result.data.education_categories.nodes.forEach(educat => {
    createPage({
      path: `/education/${educat.slug}`,
      component: path.resolve(`src/templates/education-category-template.js`),
      context: {
        slug: educat.slug,
      },
    })
  })

Вот страница образования [родителей], с которой я хочу взять ярлык

import React from 'react'
import Layout from '../components/layout'
import EducationCard from '../components/EducationComponent/EducationCard'
import Category from '../components/utilities/Category'

const Education = ({data}) => {
    const {allStrapiEducationCategories:{nodes:educations}} = data
    return (
        <Layout>
          <div className="p-5">
            <h1 className="sm:text-3xl text-2xl font-medium title-font text-gray-900 headline py-10">Beekeeping Programs</h1>
            <input type="search" id="gsearch" placeholder="Search..." name="gsearch" className="my-5 py-2 search-button lg:w-1/3" />
            <div className="flex flex-wrap mx-auto">
            {educations.map((education)=> {
                    return <EducationCard headline={education.name} image={education.picture.childImageSharp.fixed} slug={`/education/${education.slug}`} />
                })}
            </div>
            </div>
        </Layout>
    )
}

export default Education

export const query = graphql`
  {
    allStrapiEducationCategories {
      nodes {
        slug
        picture {
          childImageSharp {
            fixed(width: 400
              height: 200) {
              ...GatsbyImageSharpFixed
            }
          }
        }
        name
      }
    }
  }
`

person Shalaw Fatah    schedule 17.09.2020    source источник
comment
stackoverflow.com/a/53804805/5385381   -  person ksav    schedule 17.09.2020
comment
Отвечает ли это на ваш вопрос? Переменные в запросах graphQL   -  person coreyward    schedule 17.09.2020
comment
Я уже добавил страницу gatsby-node.js, к сожалению, это не ответ. Кстати, я использую Гэтсби и Страпи.   -  person Shalaw Fatah    schedule 17.09.2020


Ответы (1)


Каким-то образом я мог решить проблему, которая заключалась в редактировании запроса Graphql немного по-другому, учитывая, что у меня был правильно настроен gatsby-node.js.

export const query = graphql`
query getSingleNewsCategory($slug: String!)
  {
    strapiNewsCategories(slug: { eq: $slug }) {
      name
      }
      allStrapiIndustries(
        filter: {news_category: {slug: {eq: $slug}}}
        ) {
        nodes {
          report_photo {
            childImageSharp {
              fluid {
                src
              }
            }
          }
          quote
          content
          title
          slug
          minutes_read
          date(formatString: "MM")
            article_author {
            name
          }
        }
    }
    allStrapiNewsCategories {
      nodes {
        slug
        name
      }
    }
  }
`
person Shalaw Fatah    schedule 24.09.2020