检查渲染方法

use*_*407 5 reactjs react-redux react-router-redux

我正在使用react,redux和react-redux-router.当我运行一个应用程序时,我收到一个错误.我不明白它与我的App.js中的react函数有什么关系.在我看来,问题在于代码中的其他地方.

错误如下:

 Warning: React.createElement: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: object. Check the render method of `App`.
 in App
 in Router (created by ConnectedRouter)
 in ConnectedRouter
 in Provider       
 Uncaught Error: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: object. Check the render method of `App`.
Run Code Online (Sandbox Code Playgroud)

我的javascript App文件代码如下所示.

 import React from 'react';
 import Header from './common/Header';
 import HomePage from '../components/home/HomePage';
 import Routes from '../routes';            
 const App = () => (
   <div>
   <Header />              
   <Routes />
   </div>
     )

 export default App;
Run Code Online (Sandbox Code Playgroud)

我的Javascript索引文件代码如下所示

 import 'babel-polyfill';
 import React from 'react';
 import {render} from 'react-dom';
 import {Provider} from 'react-redux';
 import {BrowserRouter as Router} from 'react-router-dom';
 import configureStore, {history} from './store/configureStore';
 import {loadProducts} from './actions/homeAction';
 import routes from './routes';
 import '../node_modules/bootstrap/dist/css/bootstrap.min.css';
 import {ConnectedRouter} from 'react-router-redux';
 import createHistory from 'history/createBrowserHistory'
 import App from './components/App';    

  const store = configureStore();
  store.dispatch(loadProducts("http://localhost:1219/portal/getProducts"));        
 render(
    <Provider store={store}>
    <ConnectedRouter history={history}>
     <App />
     </ConnectedRouter>
     </Provider>,
     document.getElementById('app')
  );
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激.如果您想了解更多详情,请告诉我

Gau*_*avs -1

在导入组件时,请确保在App.js文件中写入{}

像下面这样

import {Header} from './common/Header';
import {HomePage} from '../components/home/HomePage';
Run Code Online (Sandbox Code Playgroud)

这将解决该问题。

如果您有一些默认导出组件,可以在不使用 {} 的情况下提及。

像下面这样

import Header from './common/Header';
Run Code Online (Sandbox Code Playgroud)

如果一个js文件中有多个组件,可以这样写

import Header,{OtherComponent1,OtherComponent2} from './common/Header';
Run Code Online (Sandbox Code Playgroud)