React Router Redux 的问题(“React.createElement: type is invalid”错误)

cod*_*r14 3 reactjs react-router react-redux

我在设置 React-Router-Redux 时遇到了一些问题。我只是按照https://github.com/ReactTraining/react-router/tree/master/packages/react-router-redux#usage上的基本示例进行操作。

我的 App.jsx 看起来像这样:

import React, { Component } from 'react';
import { Route, Switch } from 'react-router-dom';
import { Provider } from 'react-redux';
import { ConnectedRouter } from 'react-router-redux';
import createHistory from 'history/createBrowserHistory';

import Home from './containers/Home';
import About from './containers/About';
import store from './store';

const history = createHistory();

class App extends Component {
  render() {
    return (
      <Provider store={store}>
        <ConnectedRouter history={history}>
          <div>
            <Route exact path="/" component={Home}/>
            <Route path="/about" component={About}/>
          </div>
        </ConnectedRouter>
      </Provider>
    );
  }
}

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

当我保存这个时,我收到以下错误:

React.createElement: type is invalid -- 期望一个字符串(对于内置组件)或一个类/函数(对于复合组件)但得到:undefined。您可能忘记从定义组件的文件中导出组件。

在 App.js:25 检查您的代码。

第 25 行是: <ConnectedRouter history={history}>

有人可以帮我吗?

这些是我的依赖项:

"react": "^15.6.1",
"react-dom": "^15.6.1",
"react-redux": "^5.0.6",
"react-router": "^4.2.0",
"react-router-dom": "^4.2.2",
"react-router-redux": "^4.0.8",
"history": "^4.7.2",
"redux": "^3.7.2",
Run Code Online (Sandbox Code Playgroud)

Mik*_*kov 5

ConnectedRouterreact-router-redux版本 5可用的组件。看看这个问题。正如我们从您的依赖项中看到的,您目前使用的是react-router-redux版本 4。

所以你应该这样升级你的react-router-redux包:

如果您使用npm

npm install react-router-redux@next
Run Code Online (Sandbox Code Playgroud)

或者如果您使用yarn

yarn add react-router-redux@next
Run Code Online (Sandbox Code Playgroud)