首页 > 解决方案 > 使用 React 路由器 v4 在 react-boilerplate 中加载异步减速器和 sagas

问题描述

我正在考虑将项目迁移到最新的 react-boilerplate 版本,并且许多模块已更改。我无法使用 React 路由器 v4 来使用我的减速器和 sagas。我查看了使用反应路由器 4 动态加载 redux 减速器, 现在我收到以下错误:警告:React.createElement:类型无效——需要一个字符串(对于内置组件)或一个类/函数(对于复合组件) ) 但得到:对象。

检查withReducer(Component). in withReducer(Component) (由 Route 创建) in Route (由 App 创建) in Switch (由 App 创建) in div (由 App 创建) in App (由 Connect(App) 创建) in Connect(App) (由 Route 创建) 在 Route (由 withRouter(Connect(App)) 创建) 在 withRouter(Connect(App)) 在 Router (由 BrowserRouter 创建) 在 BrowserRouter 在 IntlProvider (由 LanguageProvider 创建) 在 LanguageProvider (由 Connect(LanguageProvider) 创建) 在 Connect (LanguageProvider) 在提供者

我的代码与我遵循的示例略有不同,因为我添加了 withRouter:

const withConnect = withRouter(connect(mapStateToProps, mapDispatchToProps));

const addHelpReducer = injectReducer({ key: 'help', reducer: helpReducer });

export default compose(
    addHelpReducer,
    withConnect
  )(Help);

injectReducer 来自 react-boilerplate utils 文件,我没有修改该文件或 configureStore 文件。

标签: reactjsreact-reduxreact-router-v4react-boilerplate

解决方案


我想出了如何做到这一点:

export default compose(
    withRouter,
    withReducer,
    withSaga,
    withConnect
  )(Help);

虽然我现在进入了一个不同的问题。关闭这个。


推荐阅读