簡體   English   中英

GatsbyJS Webpack錯誤,未定義變量

[英]GatsbyJS webpack error, undefined variables

我很難理解運行gatsby build在nginx服務器上構建公共文件時服務器拋出的錯誤

error Building static HTML for pages failed
WebpackError: Cannot read property 'map' of undefined

奇怪的是,當我在本地計算機上運行gatsby development時,一切正常,沒有錯誤。 僅當我在Nginx服務器上運行gatsby build時,此錯誤才會彈出。 這兩個文件也正確同步。

根據錯誤,未定義標簽。 但是它確實存在,我已經使用localhost graphQL進行了檢查。 然后去我描述變量的方式,但是如果它不起作用,那么其余的標題,子句,日期,html等也就不能正常工作。 但是,當我拿出標簽時,它確實如此。

    const {title, date, slug, excerpt } = this.props.data.contentfulBlog;
    const tags = this.props.data.contentfulBlog.category;
    const html = this.props.data.contentfulBlog.childContentfulBlogHtmlTextNode.childMarkdownRemark.html;

    return(
    <div>
      <Helmet> 
            <title>{title}</title>
            <meta name="description" content={excerpt}/>
            <meta name="keywords" content={tags.map((tag) => (String(tag.tagTitle)))}/>
      </Helmet>

因此,我不知道為什么在服務器上構建變量時為什么無法訪問標簽變量,但是它可以在本地計算機上運行。 謝謝!

雖然由於Google和其他搜索引擎將meta keywords 用於其排名系統 ,所以我不確定為什么需要使用meta keywords ,但我認為您可以通過執行以下操作來解決您的問題:

<meta name="keywords" content={tags ? tags.map((tag) => (String(tag.tagTitle))) : ''}/>

我遇到過同樣的問題。

就我而言,prop x是一個數組,是必需的。 但是調用x.map返回

cannot read property 'map' of undefined

我通過給prop x一個默認值[]修復它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM