【发布时间】:2019-03-17 18:56:32
【问题描述】:
??????
我当前的 GatsbyJS 项目是一个带有轮播和其他内容的单页浏览器。
背景
旋转木马应包含有关某些产品的信息。我的目标是通过遍历所有降价文件来让轮播自行构建,并在文件顶部选择具有以下三行的文件:
---
type: product
---
所以我创建了一个CarouselContainer(类组件)和一个Carousel 组件(功能组件)。 Container 应该通过 GraphQL 查询加载 markdown,并将生成的 products 对象传递给它的嵌套组件。然后组件应该映射到对象上并创建轮播。
但也有其他用于菜单列表、文本模式等的降价文件。他们有type: page。我认为准备一些 GraphQL 查询将是解决方案。但结果却比预想的要难……
容器组件是类组件,所以无法在里面直接调用查询(https://github.com/gatsbyjs/gatsby/issues/3991#issuecomment-364939030)。
然后我认为将多个查询放入pages/index.js 可能是解决方案。
export const indexQuery = graphql`
query IndexQuery {
allMarkdownRemark(filter: {frontmatter: {type: {eq: "page"}}}) {
edges {
node {
frontmatter {
title
text
}
}
}
}
}
`
export const productsQuery = graphql`
query ProductsQuery {
allMarkdownRemark(filter: {frontmatter: {type: {eq: "product"}}}) {
edges {
node {
id
frontmatter {
title
content
}
}
}
}
}
`
再次没有。使用 GraphQL 片段应该是一个解决方案...
Q谁能告诉我如何为此目的准备片段和/或有另一个想法如何将降价内容直接放入我的容器中?
感谢阅读。
【问题讨论】:
标签: javascript reactjs graphql gatsby