Мы создаем слаг-узел в gatsby-node.js
.Затем мы создаем createPage
const posts = result.data.allMarkdownRemark.edges
posts.forEach(({ node: post }) => {
createPage({
path: `posts${post.fields.slug}`,
component: PostTemplate,
context: {
slug: post.fields.slug,
testingSomething: "this is a test",
},
})
})
В шаблоне мы запускаем что-то вроде этого.
const PostTemplate = ({ data: post }) => {
return ( ...) }
export const query = graphql`
query($slug: String!) {
markdownRemark(fields: { slug: { eq: $slug } }) {
...
}
`
export default PostTemplate
Как graphql
узнает, что есть слаг?Если это что-то вроде this.props.pageContext.slug
хорошо, но что происходит в тайне?
Как заполняется переменная $slug
?