Gatsby: рдХреИрд╕реЗ рдкреГрд╖реНрдареЛрдВ рд╕реЗ gatsby-node.js рд╕реЗ рдПрдХ рдЪрд░ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП

рдХреЛ рдирд┐рд░реНрдорд┐рдд 19 рдордИ 2019  ┬╖  1рдЯрд┐рдкреНрдкрдгреА  ┬╖  рд╕реНрд░реЛрдд: gatsbyjs/gatsby

рдпрд╣ рдлрд┐рд▓рд╣рд╛рд▓ рдореЗрд░реЗ рдХреЛрдб рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ

        const posts = result.data.allCockpitHello.edges
        const date = new Intl.DateTimeFormat("default", {
          month: "short",
          day: "2-digit",
          year: "numeric",
        }).format(posts.node.cockpitCreated,);
        posts.forEach((post, index) => {
          const previous = index === posts.length - 1 ? null : posts[index + 1].node
          const next = index === 0 ? null : posts[index - 1].node

          createPage({
            path: `/blog/${post.node.Name.value}`,
            component: path.resolve(`./src/components/single.js`),
            context: {
              slug: post.node.Name.value,
              date,
              previous,
              next,
            },
          })
        })

рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдореИрдВ _single.js_ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рддрд░реАрдХреЗ рд╕реЗ рдорд╛рди рдХреЗ рдиреАрдЪреЗ date рдХреИрд╕реЗ рдкрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

question or discussion

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

@ рд╕рдм рд╕реЗ рдкрд╣рд▓реЗ рдкрд░рд┐рдХрд▓реНрдкрдирд╛-рдЬреАрдердм, рдХреНрдпрд╛ рдЖрдк рдПрдХрд▓ рдШрдЯрдХреЛрдВ рдореЗрдВ рдбреЗрдЯрд╛ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП createPage рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдпрд╛ рд╡рд╣ рдПрдХрд▓ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╣реИ? рдФрд░ рд╢рд╛рдпрдж рдЖрдк рдЬреЛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рд╡рд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╣реИ:

const posts = result.data.allCockpitHello.edges
        const date = new Intl.DateTimeFormat("default", {
          month: "short",
          day: "2-digit",
          year: "numeric",
        }).format(posts.node.cockpitCreated,);
        posts.forEach((post, index) => {
          const previous = index === posts.length - 1 ? null : posts[index + 1].node
          const next = index === 0 ? null : posts[index - 1].node

          createPage({
            path: `/blog/${post.node.Name.value}`,
            component: path.resolve(`./src/components/single.js`),
            context: {
              slug: post.node.Name.value,
              cockpidate:date,
              previousitem:previous,
              nextitem:next,
            },
          })
        })

рдФрд░ single.js :

import React from "React"
import {Link} from "gatsby"

const Single=props=>{
   const {pageContext}= props
   const {slug,cockpidate,nextitem,previousitem}= pageContext
  return (
      <div>
        <h3>{slug}</h3>
         <hr/>
         <h5>created at {cockpidate}</h5>
         <Link to={nextitem}/>next item</Link>
          <Link to={previousitem}/>previousitem</Link>
       <div>
  )
}
export default Single

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ

>рд╕рднреА рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

@ рд╕рдм рд╕реЗ рдкрд╣рд▓реЗ рдкрд░рд┐рдХрд▓реНрдкрдирд╛-рдЬреАрдердм, рдХреНрдпрд╛ рдЖрдк рдПрдХрд▓ рдШрдЯрдХреЛрдВ рдореЗрдВ рдбреЗрдЯрд╛ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП createPage рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдпрд╛ рд╡рд╣ рдПрдХрд▓ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╣реИ? рдФрд░ рд╢рд╛рдпрдж рдЖрдк рдЬреЛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рд╡рд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╣реИ:

const posts = result.data.allCockpitHello.edges
        const date = new Intl.DateTimeFormat("default", {
          month: "short",
          day: "2-digit",
          year: "numeric",
        }).format(posts.node.cockpitCreated,);
        posts.forEach((post, index) => {
          const previous = index === posts.length - 1 ? null : posts[index + 1].node
          const next = index === 0 ? null : posts[index - 1].node

          createPage({
            path: `/blog/${post.node.Name.value}`,
            component: path.resolve(`./src/components/single.js`),
            context: {
              slug: post.node.Name.value,
              cockpidate:date,
              previousitem:previous,
              nextitem:next,
            },
          })
        })

рдФрд░ single.js :

import React from "React"
import {Link} from "gatsby"

const Single=props=>{
   const {pageContext}= props
   const {slug,cockpidate,nextitem,previousitem}= pageContext
  return (
      <div>
        <h3>{slug}</h3>
         <hr/>
         <h5>created at {cockpidate}</h5>
         <Link to={nextitem}/>next item</Link>
          <Link to={previousitem}/>previousitem</Link>
       <div>
  )
}
export default Single

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

ferMartz picture ferMartz  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

theduke picture theduke  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

totsteps picture totsteps  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

mikestopcontinues picture mikestopcontinues  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

3CordGuy picture 3CordGuy  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ