首页 > 解决方案 > Invariant Violation:期望一个字符串(对于内置组件)或一个类/函数(对于复合组件)但得到:未定义

问题描述

我正在服务器端渲染应用程序上使用 React 和 Webpack。当打开我的本地主机页面时,页面会呈现此错误:

[[AWarning: React.createElement: type is invalid - 需要一个字符串(对于内置组件)或一个类/函数(对于复合组件)但得到:未定义。您可能忘记从定义组件的文件中导出组件,或者您可能混淆了默认导入和命名导入。

但是我的输入很好,不知道为什么服务器会返回这个错误。

这是我的 App.js :

   const AppRoute = () => { 
            if(process.env.BROWSER){
        return <Provider store={store}> 
        <BrowserRouter history={ history }> 
        <Switch>
            <Route path="/" component={App} exact />
            <Route path="/post_entry" component={postEntry} exact />
        </Switch>
        </BrowserRouter> 
        </Provider> 
            }

      else { 
    return
            <Provider store={store}> 
            <ServerRouter history={ history }> 
            <Switch>
                <Route path="/" component={App} exact />
                <Route path="/post_entry" component={postEntry} exact />
            </Switch>
            </ServerRouter> 
            </Provider> 

        }
        }

    export default AppRoute  // great default export

我的 server.js :

import AppRoute  from "../app/Router"; // great default import

 <body>
    <div id="root">${renderToString(<AppRoute/>)}</div> 
  </body>

我的 browser.js :

import {render} from "react-dom" ;
import  AppRoute  from "../app/Router"; // great default import

render( <AppRoute/> {...} )

我不知道出了什么问题,如果有人得到任何提示会很好,谢谢

标签: javascriptreactjsserver-side-rendering

解决方案


推荐阅读