如何以编程方式添加菜单项

时间:2018-06-23 06:14:29

标签: gatsby

我正在通过markdown文件以编程方式创建页面。我还如何将文件名添加为菜单项,以便可以以编程方式生成菜单项?您可能会问为什么我需要它。我需要它,因为当我使用netlifyCMS添加另一个markdown页面时,应将其添加到菜单中而不进行代码修改。  Gatsby本身或其任何其他插件是否提供任何简便的方法。非常感谢您的时间和帮助?

1 个答案:

答案 0 :(得分:0)

您需要在模板中进行GraphQL查询以获取allMarkdownRemark

export const query = graphql`
  query CoursesQuery {
    allMarkdownRemark {
      edges {
        node {
          {... what you want}
        }
      }
    }
  }
`

它为您提供了一个包含所有降价页面的数组。

您可以使用graphQL查询像往常一样在道具中检索它。

然后必须循环以在菜单中每页生成一个项目。

例如:

const items = this.props.data.allMarkdownRemark.edges
  .map(({ node }) => { 
    return (
      <li>{ node.data.you.want }</li>
    )
 })

您现在可以将items放在菜单中,以查看每个页面的li