【问题标题】:Next.js dynamically loaded component not displaying passed dataNext.js 动态加载的组件不显示传递的数据
【发布时间】:2020-10-07 20:53:16
【问题描述】:

我有一个服务器,我试图将页面的页脚作为一个组件加载,但该页脚需要每个单独的页面通过 getStaticProps 获取的数据。当我将数据传递给动态加载的页脚时,当我 console.log 时可以看到数据,但永远不会创建数据的 .map 中的元素。

首页:

import { getCities } from '../lib/cities';
import dynamic from 'next/dynamic'

const DynamicFooter = dynamic(() => import('../components/footer'))

export default function Home({ allCities }) {
    return (
        <div className="container">

            <DynamicFooter {...allCities} />
        </div>
    )
}

export async function getStaticProps() {
    const allCities = getCities()
    return {
        props: {
            allCities
        }
    }
}

页脚:

export default function Footer(data) {
    return (
        <div>
            <div>SOME TEXT</div>
            {
                data.cities.map((city) => {
                    console.log(city);
                    <div key={city.url}>
                        {city.name}
                    </div>
                })
            }
        </div>
    )
}

console.log 将显示正在加载的每个城市,我可以看到 SOME TEXT div,但从未将包含 city.name 的每个 div 添加到页面中。

【问题讨论】:

    标签: javascript next.js


    【解决方案1】:

    您不会在组件中渲染地图。

    您可以使用速记回车或普通回车。

    data.cities.map((city) => {
      return (
        <div key={city.url}>
          {city.name}
        </div>
      )
    })
    

    data.cities.map((city) => (
      <div key={city.url}>
        {city.name}
      </div>
    ))
    

    【讨论】:

    • 是的,就是这样,谢谢!当网站允许时,我会在几分钟内接受。
    猜你喜欢
    • 1970-01-01
    • 2018-10-14
    • 2017-07-23
    • 2021-10-28
    • 2017-03-31
    • 2021-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多