reactjs 默认导出不是页面中的React组件:“/”Next.js

oknwwptz  于 2023-01-08  发布在  React
关注(0)|答案(7)|浏览(223)

不知道为什么会出现这个错误,这是我的index.js和App.js(默认导出)。我在app.js中使用了导出默认值。
index.js:

import "./index.css";
import App from "./App";
import "bootstrap/dist/css/bootstrap.css";
import "font-awesome/css/font-awesome.css";
<App />;

App.js

import React, { Component } from "react";
import { ToastContainer } from "react-toastify";
import NavBar from "../components/navBar";
import auth from "../services/authService";
import "react-toastify/dist/ReactToastify.css";
import "./App.css";

class App extends Component {
  state = {};

  componentDidMount() {
    const user = auth.getCurrentUser();
    this.setState({ user });
  }

  render() {
    const { user } = this.state;

    return (
      <React.Fragment>
        <ToastContainer />
        <NavBar user={user} />
      </React.Fragment>
    );
  }
}

export default App;
ibps3vxo

ibps3vxo1#

日期:2021年1月23日
我的Next.js应用程序也遇到过这个问题。
如果你使用的是函数组件而不是类组件,在某些情况下也会出现这个错误,确切的说我不知道为什么会出现这种情况,但我只是通过页面底部的exporting我的组件解决了这个问题。
像这样,
用例错误场景:

export default function Home(){
      return (<>some stuffs</>)
}

Home.getInitialProps = async (ctx) => {
    return {}
}
Error: The default export is not a React Component in page: "/"

如何解决呢?
我只是把我的导出放在我的页面底部,然后它就会消失。
像这样,

function Home(){
      return (<>some stuffs</>)
}

Home.getInitialProps = async (ctx) => {
    return {}
}

export default Home;

希望对你有帮助!

vpfxa7rd

vpfxa7rd2#

修复,使index.js成为一个类并将其导出。

import React, { Component } from "react";
import "./index.css";
import App from "./App";
import "bootstrap/dist/css/bootstrap.css";
import "font-awesome/css/font-awesome.css";
class Index extends Component {
  state = {};
  render() {
    return <App />;
  }
}

export default Index;
14ifxucb

14ifxucb3#

在next.js中,所有页面都必须默认导出。

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

const Home: NextPage = () => {
  return (
    <BaseLayout>
    
    </BaseLayout>
  );
};

export default Home;

如果没有,则会出现该错误。

1aaf6o9v

1aaf6o9v4#

如果在服务器端呈现过程中,在初始页面呈现之前抛出一个错误而没有捕获它,也会发生这种情况。

const Component = (props) => {
  return (
    <div {...props}>
       hello!
    </div>
  );
};

Component.getInitialProps = async ({ query, req, asPath }) => {
  throw new Error('Application is crashing without catch');
}

确保在呈现页面之前捕获到意外错误。

o8x7eapl

o8x7eapl5#

对我来说,这只是因为我有一个.ts而不是.tsx文件。它可能会对.js而不是.jsx扩展名做同样的事情。

fjaof16o

fjaof16o6#

我经历了同样的错误:默认导出不是页面中的React组件:“/_应用程序”
下一个12.2.5
在我的例子中,我正在从React应用程序过渡到Nextjs。
我的index.js文件是一个功能组件,但我的_app. js上缺少以下内容

import './App.css'

/* I was missing the following code */
function MyApp({ Component, pageProps }) {
    return <Component {...pageProps} />
}

export default MyApp
cdmah0mi

cdmah0mi7#

这对我很有效:
1.删除节点模块和yarn.lock/包锁. json
1.运行Yarn安装或npm安装

相关问题