反应路由器 – BrowserHistory.Push VS. ContextTypes

我正在完成一个高级的react / redux教程,并在教程中使用browserHistory.push链接到一个路线,而不是用于创build一个名为contextTypes的静态类variables的前一个方法,并设置它等于类似React.PropTypes.blah等等等等。

那和使用browserHistory.push有什么区别? 与设置上下文types相反,browserHistory.push似乎更容易作为程序重新路由。

谢谢!

不知道你使用了哪些教程,所以这是在黑暗中的一个镜头。

我想你在你的第一个教程中使用像https://github.com/reactjs/react-router-redux这样的东西,使路由器状态与你的redux状态同步,并在上下文中有你的路由器对象。 然后你可以做一些事情:

this.context.router.push(location)调度位置更改这将保存位置更改为您的redux状态,然后加载该新的路线。

核心react-router-redux(和许多其他路由库)使用https://github.com/ReactTraining/history来pipe理导航到的路由的历史logging。 这允许您在现代浏览器中使用HTML5历史API,回退到hashHistory(index.html /#page-one)或内存历史logging,即呈现服务器端。

历史包附带了它自己的API。 在你的教程中, browserHistory.push()可能直接调用历史包的API( 见这里 )。

这将导致应用程序加载新的路线,但可能绕过同步到您的REDX商店。

你的第二个教程可能不使用react-router-redux或者有不同的设置。