获取`元素类型无效:使用react-redux-router时预期出现字符串`错误

Posted

技术标签:

【中文标题】获取`元素类型无效:使用react-redux-router时预期出现字符串`错误【英文标题】:Get `Element type is invalid: expected a string ` error when using react-redux-router 【发布时间】:2018-05-30 20:49:11 【问题描述】:

我正在使用来自此 repo https://github.com/reacttraining/react-router/tree/master/packages/react-router-redux 的 react-router-redux 来路由我的应用程序。 但我的浏览器控制台中总是出现以下错误:

Uncaught Error: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined. You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.

下面是App组件的源码。所有这些代码都是前端:

const history = createHistory();
const rMiddleware = routerMiddleware(history);
const logger = createLogger(
  log: 'info',
);

const store = compose(
  applyMiddleware(thunk, authMiddleware, rMiddleware, logger)
)(createStore)(combineReducers(...reducers, router: routerReducer));

export default class App extends Component 
  render() 
    return (
      <Provider store=store>
        <ConnectedRouter history=history>
          <Switch>
              <Route exact path="/" component=Home />
          </Switch>
        </ConnectedRouter>
      </Provider>
    );
  

下面是 Home 组件代码:

class Home extends React.Component 
  render() 
    return <div>Home</div>;
  

const mapStateToProps = state => 
  return 
  ;
;

const mapDispatchToProps = dispatch => 
  return 
  ;
;
export default connect(mapStateToProps, mapDispatchToProps)(Home);

【问题讨论】:

我们可以看到主页和登录吗? 我已经更新了源代码。 我目前在 react-router 学习曲线上。总是当我收到这个错误时,这是​​我的导入语句中的路径错误(我正在使用 ES6 模块)。不过,您没有在这里展示这些内容。 【参考方案1】:

好的,终于找到问题了。这是因为版本不匹配。我应该使用"react-router-redux": "^5.0.0-alpha.9", 而不是版本4.x.x,因为它与react-router 4.x.x 不兼容。

【讨论】:

以上是关于获取`元素类型无效:使用react-redux-router时预期出现字符串`错误的主要内容,如果未能解决你的问题,请参考以下文章

获取`元素类型无效:使用react-redux-router时预期出现字符串`错误

未捕获的错误:元素类型无效

NextJs 错误:元素类型无效:使用 Heroicons 时需要一个字符串

Redux 存储:元素类型无效:应为字符串

反应错误:元素类型无效:需要一个字符串

使用多个(最新)第 3 方反应库反应“未捕获的不变违规:元素类型无效”