收到错误"Build optimization failed: found page without a React Component as default export in pages/"



我运行yarn build
得到错误:

> Build optimization failed: found page without a React Component as default export in 
pages/
See https://nextjs.org/docs/messages/page-without-valid-component for more info.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

我的目录结构是:

  • 公共

  • src

    • 组件
    • 页码
      • 管理员
        • index.tsx
      • _app.tsx
      • index.tsx
    • 切片
    • utils
  • .env

  • .gitignore

  • next-env.d.ts

  • 软件包.json

  • tsconfig.json

  • 码锁定

我希望我的方式是正确的。
我的代码出了什么问题?

更新

从Mark G的建议和链接中,我认识到返回值应该是一个有效的React组件。
我认为返回值应该是有效的JSX。

我认为我的返回值是有效的。
怎么了???

frontend/src/pages/index.tsx

import LoginPage from "pages/admin";
export function Home() {
return <LoginPage />;
}

frontend/src/pages/admin/index.tsx

export default function LoginPage() {
...
function Redirect(to: any) {
const router = useRouter();
useEffect(() => {
router.push(to);
}, []);
return null;
}
if (logged_in.payload.loggedInReducer.logged_in) {
return <div></div>;
} else {
return (
<ThemeProvider theme={theme}>
...
</ThemeProvider>
);
}
}

frontend/src/pages/index.tsx文件中,更改。。。

// missing `default`
export function Home() {
return <LoginPage />;
}

到…

// add `default`
export default function Home() {
return <LoginPage />;
}

每当出现错误时,首先检查文件和目录。

在这里,你可以看到这是一个发生在页面/中的错误

因为你在页面中有一个文件名index.tsx,所以它的目录意味着pages/index.tsx(#注意:每当你导入一个目录时,它首先会检查这个目录中是否有文件名index.extension。(

在你的index.tsx中,你会有很多函数。因此,它会找到一个默认导出的函数。

也许您忘记在index.tsx.的函数中添加关键字默认

frontend/src/pages/index.tsx文件中,只需添加一个关键字default。。。希望它能起作用,你能理解。

export default function Home() {
return <LoginPage />;
}

最新更新