Webpack-dev-server, redux, isomorphic react router invariant
Webpack-dev-server, redux, isomorphic react router invariant error
当通过webpack dev server运行我的服务器时,我得到这个错误:
Uncaught Error: Invariant Violation: Server-side <Router>s need location,
branch, params, and components props. Try using Router.run to get all the
props you need
我的客户端条目文件看起来像这样:
// ... imports ...
let initialState = window.__INITIAL_STATE__;
Object.keys(initialState)
.forEach(key => {
initialState[key] = fromJS(initialState[key]);
});
const reducer = combineReducers(reducers);
const store = createStore(reducer, initialState);
React.render(
<Provider store={store}>
{() =>
<Router children={routes} history={history} />
}
</Provider>,
document.getElementById('react-view')
);
一切呈现在服务器端正确,问题是当我有这个路由器代码在客户端。似乎路由器试图像服务器大小的路由器一样运行,即使它是在客户端上运行。
我使用的版本是:
├── react@0.13.3
├── react-hot-loader@1.3.0
├── react-redux@0.8.2
├── react-router@1.0.0-beta3
├── redux@1.0.1
└── webpack-dev-server@1.10.1
在服务器交付第一页后,您仍然需要在客户端调用Router.run
来处理导航。它将使用Router.HistoryLocation
,并仍然对匹配的路由执行React.render
方法。尝试在Router.run
内部调用React.render
,而不是其他方式。
相关文章:
- 混合 ui-sref 和 $state.go 在 Angular ui-router 中进行状态转换
- this.router在AngularJS 2中未定义
- Meteor Router数据函数被调用两次
- 如何在router.get()方法中传递url作为参数
- renderReact/Rect Router+Node/Express.js的服务器端/同构渲染中未定义renderP
- 骨干's Router.execute(callback,args,name)方法获取未定义的名称
- 有没有办法用routerLink/router.navigation附加查询/路由参数
- react router router.HistoryLocation以<noscript>但没有完美的工作
- 使用express.具有多个url和可选参数的Router()
- 单击同一链接时,使Iron Router重新加载页面
- React Router一直给我一个警告:你不能更改<路由器路由>
- BackboneJs Router
- Ember.js-如何使用Ember.Router实现所选项目
- 使用react router/react router redux将特定的redux操作绑定到一个路由
- Angular JS/UI Router:为给定状态禁用指令
- 使用AngularJS中的$stateProvider和ui.router
- 组件未使用ReactJS和React Router进行渲染
- React Router,在params之后嵌套路由
- Express router.use not working
- Webpack-dev-server, redux, isomorphic react router invariant