【发布时间】:2018-02-13 14:53:21
【问题描述】:
我正在使用 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`.
我的 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;
我的 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')
);
任何帮助将不胜感激。如果您想了解更多详细信息,请告诉我
【问题讨论】:
-
您确定
import App from './components/App';语句正确吗? -
检查
Header、HomePage和Routes组件的导出。如果您不默认导出它们,则需要像import { Home } from '/path/to/Home/component.js'一样导入它们。你能从这些组件中发布sn-ps吗 -
是的,我确信 App 的导入语句是正确的。我正在使用可视代码。当我将鼠标悬停在此语句时。它显示了 App.js 文件的正确路径
-
您的 routejs 似乎关闭了。
export default () => ( <Route ... /> )应该修复它 -
@user3661407 你能告诉我你如何解决这个问题我也面临同样的问题。谢谢
标签: reactjs react-redux react-router-redux