Gatsbyで変数を使用してcreatePageを実行すると白い画面が表示されます

イアン・トラン

ギャツビーでダイナミックな商品ページを作成しようとしています。これが私がファイルで編集したものですgatsby-node.js

exports.createPages = async ({ graphql, actions }) => {
  const { createRedirect } = actions
  const { createPage } = actions

  const {
    data: { products },
  } = await graphql(`
    {
      products: allTestJson {
        edges {
          node {
            brand
            category
          }
        }
      }
    }
  `)

  const nodeArray = products.edges.map(edge => edge.node.brand)
  const unique = [...new Set(nodeArray)]
  console.log("UNIQUE")
  console.log(unique)

  unique.forEach((brand) => {
    console.log("BRAND")
    console.log(brand)
    createPage({
      path: `/products/${brand}`,
      component: require.resolve(`./src/pages/contact-us.js`),
    })
  })
}    

ここでconsole.logを実行すると${node.brand}、値返されると確信しています。(そのうちの1つは「ファロ」です)。ただし、ブラウザで/ products / faroにアクセスすると、大きな白い空白ページしか表示されません。

ここに画像の説明を入力してください

パスをpath: "path:/products/faro"(products / faroとしてのハードコードパス)に変更すると、ページコンポーネントが正しくレンダリングされます。

ここに画像の説明を入力してください

ループまたは変数に何か問題がありますか?私はこのチュートリアルに従っていますhttps://dev.to/notrab/build-static-product-pages-with-gatsby-and-commerce-js-3952

import React, { Component } from "react"
import styled from "styled-components"
import { injectIntl, Link, FormattedMessage } from "gatsby-plugin-intl"

import Layout from "../components/layout"
import SEO from "../components/seo"
import { Background } from "../components/layout/Background"
import { Space } from "../components/layout/Space"
import ShowroomGrid from "../components/organisms/ShowroomGrid"
import ContactForm from "../components/organisms/ContactForm"
import Map from "../components/molecules/Map"

class ContactUs extends Component {
  state = {
    responsiveSize: null,
  }

  componentDidMount = () => {
    this.setState({
      responsiveSize: window.innerWidth,
    })
  }

  render() {
    const { responsiveSize } = this.state
    return (
      <Layout>
        <SEO
          description="Visit our showrooms in Ho Chi Minh City & Hanoi to admire the timeless masterpieces from Fritz Hansen, Flos, Louis Poulsen, Fontana Arte & Faro."
          title="Contact Us - nanoHome showrooms in HCM & Hanoi"
          keywords={[`luxury`, `lighting`, `furniture`, `showroom`]}
        />
        <Background>
          <MainContainer className="main-container">
            <Space height="64" />
            <H1Tag>nanoHome | Contact Us</H1Tag>
            <SectionMapAndContact responsiveSize={responsiveSize}>
              <GoogleMap>
                <Map />
              </GoogleMap>
              <Contacts>
                <Title>
                  <FormattedMessage id="page-contact-us.section-map-and-contact.title" />
                </Title>
                <Space height="48" />
                <Address>
                  <b>
                    <FormattedMessage id="page-contact-us.section-map-and-contact.office" /> </b> <Space height="16" />
                  <p>
                  <FormattedMessage id="page-contact-us.section-map-and-contact.address" />
                  </p>
                  <Space height="16" />
                  <p>‭+84 90 984 0028</p>
                  <Space height="8" />
                  <p>[email protected]</p>
                  <Space height="8" />
                  <p>www.nanohome.vn</p>
                </Address>
              </Contacts>
            </SectionMapAndContact>
            <Space height="64" />
            <SectionShowrooms>
              <Title>Our Showrooms</Title>
              <Space height="48" />
              <ShowroomGrid responsiveSize={responsiveSize} />
            </SectionShowrooms>
            <Space height="64" />
            <SectionContactForm responsiveSize={responsiveSize}>
              <Title>Get in Touch</Title>
              <Space height="48" />
              <ContactForm />
            </SectionContactForm>
          </MainContainer>
        </Background>
      </Layout>
    )
  }
}

const MainContainer = styled.div`
  margin: 0 auto;
`

const SectionMapAndContact = styled.div`
  max-width: 960px;
  margin: auto;
  padding: 0 2rem;
  display: grid;
  grid-template-columns: ${props =>
    props.responsiveSize > 1024 ? "1fr 1fr" : "1fr"};
  grid-template-rows: ${props =>
    props.responsiveSize < 1024 ? "1fr auto" : "1fr"};
  align-items: center;
  justify-content: center;
  grid-gap: ${props => (props.responsiveSize > 1024 ? "4rem" : "2rem")};
`
const GoogleMap = styled.div`
  width: 100%;
  height: 500px;
`
const Contacts = styled.div`
  width: 100%;
  max-width: 440px;
`
const Title = styled.h2`
  font-size: var(--font-size-larger);
  color: var(--color-primary-blue);
  font-family: "Miller";
`
const Address = styled.div`
  color: var(--color-primary-blue);
  font-size: var(--font-size-large);
  border-left: 2px solid var(--color-primary-blue);
  padding: 0 2rem;
  p {
    font-size: var(--font-size-medium);
    line-height: 1.5;
    margin: 0;
  }
`
const SectionShowrooms = styled.div`
  padding: 0 2rem;
  max-width: 960px;
  margin: auto;
`

const SectionContactForm = styled.div`
  width: ${props =>
    (props.responsiveSize > 1024 && "24%") ||
    (props.responsiveSize > 768 && "50%") ||
    (props.responsiveSize > 480 && "80%") ||
    "100%"};
  margin: auto;
  max-width: 960px;
  padding: 0 2rem;
  min-width: 320px;
  display: flex;
  flex-direction: column;
  align-items: center;
`

const H1Tag = styled.h1`
  visibility: hidden;
  font-size: var(--font-size-smaller);
`

export default ContactUs

また、ここに独自のアレイとブランドのデバッグを追加します(外にいるのでかなり面倒です) ここに画像の説明を入力してください

イアン・トラン

問題は、graphqlからロードした「ブランドデータ」に大文字が含まれていることと、ブラウザーが常に小文字のテキストであるため、gatsby-node.jsのパスと一致しないことです。これを見つけてくれてありがとう@harley。よろしくお願いします。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Visual Studio2013でグラフィック診断を実行すると白い画面が表示されます

分類Dev

Visual Studio2013でグラフィック診断を実行すると白い画面が表示されます

分類Dev

コードを使用してセグエを実行すると、黒い画面が表示されます

分類Dev

mvcでアンカータグhrefを使用すると白い画面が表示されました

分類Dev

マップフラグメントに白い画面を表示していますが、エミュレーターでは完全に実行されています

分類Dev

Oreoを使用してOnePlus5でSenchaアプリケーションを起動すると、白い画面のみが表示されます

分類Dev

RecycelViewを使用したCardViewで、空白の白い画面が表示されます

分類Dev

xcodeでreactnativeを実行すると、エラー画面が白くなります。エラーメッセージが表示されない

分類Dev

npm-run-allを使用してCreateReact AppでTailwindを使用すると、最初の空白の白い画面が表示されるのはなぜですか?

分類Dev

bjyauthorizeにガードを追加すると白い画面が表示されます

分類Dev

ビューを押すと白い画面が表示される

分類Dev

ワインでminecraft.exeを実行すると、黒い画面が表示されました

分類Dev

AndroidのWebViewでvimeoビデオを表示すると、白い空白の画面が表示されます

分類Dev

プログラムで実行すると、UIViewControllerが黒い画面として表示されます

分類Dev

マルチプロセッシングを含むPython + Kivyプログラムを実行すると、白い空白の画面が表示されます

分類Dev

pygameコードを実行すると、「モジュール」「pygame」に「init」メンバーがなく、白い画面ウィンドウが表示されます

分類Dev

WindowsでFlaskを実行すると、環境変数が表示されません

分類Dev

iOS開発について。iPhone6でプロジェクトを実行すると起動画面が表示されませんでしたが、シミュレーターiPhone6で実行すると表示されます

分類Dev

光沢のある、リアクティブ入力変数を使用してクエリを実行すると、比較している文字列の前に余分な空白が表示されるため、クエリで何も取得されません

分類Dev

ボタンをクリックして次のアクティビティを表示すると、白い画面のみが表示されます

分類Dev

Tensorflow 2.0コードを実行すると、「ValueError:tf.function-decorated関数が最初の呼び出し以外で変数を作成しようとしました」が表示されます。私は何が間違っているのですか?

分類Dev

Parcelable を Intent で送信すると、startActivity が呼び出されたときに白い画面が表示される

分類Dev

modelsManagerを使用して実行するとphqlが変更されました

分類Dev

Jupyterで以下を実行しようとしていますが、形状エラーが表示されています

分類Dev

MacでSqlite3を使用してRailsを実行するにはどうすればよいですか?「gemがロードされていません」というメッセージが表示されますが、Gemfileに含まれています

分類Dev

Elastic Beanstalkを使用してAWSでWebアプリを実行すると、ログに出力が表示されない

分類Dev

Postgresで、ANALYZEを実行すると、COLLATEを使用してILIKE句の動作が変更されます

分類Dev

TBBを使用してベクトルで関数を実行すると、誤った出力が返されます

分類Dev

gatsby-node.jsで複数のcreatePageルートを使用するにはどうすればよいですか

Related 関連記事

  1. 1

    Visual Studio2013でグラフィック診断を実行すると白い画面が表示されます

  2. 2

    Visual Studio2013でグラフィック診断を実行すると白い画面が表示されます

  3. 3

    コードを使用してセグエを実行すると、黒い画面が表示されます

  4. 4

    mvcでアンカータグhrefを使用すると白い画面が表示されました

  5. 5

    マップフラグメントに白い画面を表示していますが、エミュレーターでは完全に実行されています

  6. 6

    Oreoを使用してOnePlus5でSenchaアプリケーションを起動すると、白い画面のみが表示されます

  7. 7

    RecycelViewを使用したCardViewで、空白の白い画面が表示されます

  8. 8

    xcodeでreactnativeを実行すると、エラー画面が白くなります。エラーメッセージが表示されない

  9. 9

    npm-run-allを使用してCreateReact AppでTailwindを使用すると、最初の空白の白い画面が表示されるのはなぜですか?

  10. 10

    bjyauthorizeにガードを追加すると白い画面が表示されます

  11. 11

    ビューを押すと白い画面が表示される

  12. 12

    ワインでminecraft.exeを実行すると、黒い画面が表示されました

  13. 13

    AndroidのWebViewでvimeoビデオを表示すると、白い空白の画面が表示されます

  14. 14

    プログラムで実行すると、UIViewControllerが黒い画面として表示されます

  15. 15

    マルチプロセッシングを含むPython + Kivyプログラムを実行すると、白い空白の画面が表示されます

  16. 16

    pygameコードを実行すると、「モジュール」「pygame」に「init」メンバーがなく、白い画面ウィンドウが表示されます

  17. 17

    WindowsでFlaskを実行すると、環境変数が表示されません

  18. 18

    iOS開発について。iPhone6でプロジェクトを実行すると起動画面が表示されませんでしたが、シミュレーターiPhone6で実行すると表示されます

  19. 19

    光沢のある、リアクティブ入力変数を使用してクエリを実行すると、比較している文字列の前に余分な空白が表示されるため、クエリで何も取得されません

  20. 20

    ボタンをクリックして次のアクティビティを表示すると、白い画面のみが表示されます

  21. 21

    Tensorflow 2.0コードを実行すると、「ValueError:tf.function-decorated関数が最初の呼び出し以外で変数を作成しようとしました」が表示されます。私は何が間違っているのですか?

  22. 22

    Parcelable を Intent で送信すると、startActivity が呼び出されたときに白い画面が表示される

  23. 23

    modelsManagerを使用して実行するとphqlが変更されました

  24. 24

    Jupyterで以下を実行しようとしていますが、形状エラーが表示されています

  25. 25

    MacでSqlite3を使用してRailsを実行するにはどうすればよいですか?「gemがロードされていません」というメッセージが表示されますが、Gemfileに含まれています

  26. 26

    Elastic Beanstalkを使用してAWSでWebアプリを実行すると、ログに出力が表示されない

  27. 27

    Postgresで、ANALYZEを実行すると、COLLATEを使用してILIKE句の動作が変更されます

  28. 28

    TBBを使用してベクトルで関数を実行すると、誤った出力が返されます

  29. 29

    gatsby-node.jsで複数のcreatePageルートを使用するにはどうすればよいですか

ホットタグ

アーカイブ