nextjs 抱怨构建期间读取未定义的属性

nig*_*aph 8 reactjs server-side-rendering next.js

我正在使用 Nextjs 创建评论组件进行服务器端渲染。在开发模式下一切正常,但是当我尝试构建优化的生产时,下一个 js 抱怨

Cannot read property 'byname' of undefined
Run Code Online (Sandbox Code Playgroud)

这是我的组件:

import React from 'react'
import moment from 'moment-timezone'

export default function Comment({comment}) {
    return (
        <div>
            <div>
                <span>{comment.byName}</span>
                <span> {moment(new Date(comment.createdOn)).format('ll')}</span>
            </div>
            {comment.comment}
        </div>
    );
}
Run Code Online (Sandbox Code Playgroud)

这是我在 package.json 中的脚本

"scripts": {
  "dev": "next",
  "build": "next build",
  "start": "next start"
}, 
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误

    > next build

    info  - Loaded env from /Users/aliemami/coco-project/coco/.env
    Creating an optimized production build

    Compiled successfully.

    Automatically optimizing pages .
    Error occurred prerendering page "/community/Comment". Read more: https://err.sh/next.js/prerender-error
    TypeError: Cannot read property 'byname' of undefined,
Run Code Online (Sandbox Code Playgroud)

我有点明白发生了什么,可能 Nexjs 正在尝试从中创建一个静态页面,但由于传递给组件的变量而不能,我如何告诉 nextjs 在每次调用时创建组件?最有效的解决方案是什么?Next 如何在开发过程中而不是生产过程中处理这个问题?

nig*_*aph 12

好吧,再仔细看一下文档,看来组件不能在pages文件夹下,必须把所有的page组件移到该文件夹​​之外。