Next.js getInitialProps-动态路由在生产中不起作用

时间:2019-11-14 23:16:43

标签: javascript asynchronous next.js

我使用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 buildnext export),它将无法正常工作。

1 个答案:

答案 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步骤时,这种类型的错误才可见。相同的代码在开发人员模式下可以很好地执行。