我使用Next.JS版本9.1.3,并且在我的项目中具有动态路由(但是带有exportPathMap的静态文件)。
该路由在开发模式下可以完美运行,但在生产模式下则不起作用。
我得到:
在呈现页面“ / details / undefined”时发生错误:TypeError:无法分解“ undefined”或“ null”的属性
baseDetails
。
import { Component } from 'react';
import getLocks from '../../data/helper/getLocks';
import PageTemplate from '../../components/PageTemplate';
import RenderLock from '../../components/RenderLock';
class details extends Component {
static async getInitialProps({ query }) {
return { lock: getLocks().find((el) => el.id === query.lockID) };
}
render() {
const { lock } = this.props;
return (
<PageTemplate>
<div>
<RenderLock lock={lock} />
</div>
</PageTemplate>
);
}
}
export default details;
RenderLock使用此:
const { baseDetails } = lock;
正如我所说,在开发模式下它可以完美运行。 baseDetails存在。
但是在生产模式下(如果我做了next build
和next export
),它将无法正常工作。
答案 0 :(得分:1)
在#include<stdio.h>
#define SIZE 5
void main(){
int i,j,temp,array[SIZE]={1,2,3,4,5},k;
for(i=0,j=SIZE-1;i<j;i++,j--){
temp=array[i];
array[i]=array[j];
array[j]=temp;
}
for(k=0;k<SIZE;k++){
printf("%d\n",array[k]);
}
}
目录中具有 non-page 组件会遇到此错误。
您可能会尝试将/pages
文件移动到details.js
,因此它不会被识别为静态页面。
仅当../../components
进入Automatic Static Optimization步骤时,这种类型的错误才可见。相同的代码在开发人员模式下可以很好地执行。