【发布时间】:2021-10-19 20:11:04
【问题描述】:
我已尝试四处搜索,但找不到与我有问题的人。
当我运行 next build 时,我收到一条错误消息,提示我不能拥有 getInitalProps/getServerSideProps,但在我的 404.tsx 文件中没有使用 getInitalProps 或 getServerSideProps。
Error Message:
Error: `pages/404` can not have getInitialProps/getServerSideProps, https://err.sh/next.js/404-get-initial-props
at /Users/myuser/.nvm/versions/node/v15.5.0/lib/node_modules/next/dist/build/index.js:15:5606
at runMicrotasks (<anonymous>)
at processTicksAndRejections (node:internal/process/task_queues:93:5)
at async /Users/myuser/.nvm/versions/node/v15.5.0/lib/node_modules/next/dist/build/tracer.js:3:470
at async Promise.all (index 0)
at async /Users/myuser/.nvm/versions/node/v15.5.0/lib/node_modules/next/dist/build/index.js:15:2910
at async /Users/myuser/.nvm/versions/node/v15.5.0/lib/node_modules/next/dist/build/tracer.js:3:470
at async /Users/myuser/.nvm/versions/node/v15.5.0/lib/node_modules/next/dist/build/index.js:15:2147
at async /Users/myuser/.nvm/versions/node/v15.5.0/lib/node_modules/next/dist/build/tracer.js:3:470
但是我的 404 文件是这样的:
import * as React from 'react';
import Head from 'next/head';
import Layout from '../components/Layout';
const Error = () => {
return (
<Layout>
<Head>
<title>TM</title>
</Head>
<h1>Error 404</h1>
<h2>Page not found</h2>
</Layout>
);
};
export default Error;
布局组件:我注释掉了默认道具,认为它可能是出于某种奇怪的原因造成的。
import * as React from 'react';
import Footer from './Footer';
import Head from 'next/head';
import Header from './Header';
import styles from '../styles/main.module.css';
type Props = {
showFooter?: boolean;
showHeader?: boolean;
title?: string;
};
const Layout: React.FC<Props> = ({
showFooter,
showHeader,
title,
children,
}) => {
showFooter = showFooter || true;
showHeader = showHeader || true;
title = title || 'title';
return (
<div>
<Head>
<title>{title}</title>
</Head>
{showHeader && <Header />}
<div className={styles.content}>{children}</div>
{showFooter && <Footer />}
</div>
);
};
// Layout.defaultProps = {
// showFooter: true,
// showHeader: true,
// title: 'title',
// };
export default Layout;
感谢您的帮助!
【问题讨论】:
-
您能否提供一个代码框(或类似的)来复制您遇到的问题?
-
我最终解决了我的问题。我使用的节点版本与我的 package.json 中指定的不同。 1. nvm 使用 在我的 package.json 中的引擎下指定的节点版本 2. npm install (这将重新安装与该节点版本兼容的包) 3. 重新运行下一个构建...如果仍然有问题用它然后尝试清除你的 npm 缓存,删除 node_modules,如果你真的有太多,删除你的包锁......希望对将来遇到这个问题的其他人有所帮助。
标签: reactjs typescript next.js getserversideprops