Ben*_*rio 2 javascript interpolation reactjs graphql gatsby
尝试在我的 graphql 查询中为长而复杂的 Id 使用别名:
编译失败:graphql 标签中不允许字符串插值:
const query = graphql`
query MyQuery {
wordpress {
menu(id: "${wordpress("mainMenu")}") {
...rest of query
}
}
}
`
Run Code Online (Sandbox Code Playgroud)
您应该改用查询变量。
可以通过作为
createPageAPI参数的上下文对象将变量添加到页面查询(但不是静态查询)。文档
// inside template file
export const query = graphql`
query MyQuery($id: String!) {
menu(id: { eq: $id }) {
...rest of query
}
}
`
Run Code Online (Sandbox Code Playgroud)
然后,您可以在gatsby-node.js. 例如:
// gatsby-node.js
const postTemplate = path.resolve(`./src/templates/post.js`)
allWordpressPost.edges.forEach(edge => {
createPage({
path: `/${edge.node.slug}/`,
component: slash(postTemplate),
context: {
id: edge.node.id, //
},
})
})
Run Code Online (Sandbox Code Playgroud)
看看gatsby 的这个using-wordpress 示例。
| 归档时间: |
|
| 查看次数: |
3017 次 |
| 最近记录: |