Javascript React路由器-BrowserHistory.Push与ContextTypes

Javascript React路由器-BrowserHistory.Push与ContextTypes,javascript,node.js,reactjs,redux,react-router,Javascript,Node.js,Reactjs,Redux,React Router,我正在完成一个高级react/redux教程,在课程中遇到了一个部分,讲师使用browserHistory.push链接到一个路由,而不是以前使用的创建一个名为contextTypes的静态类变量并将其设置为react.PropTypes.blah之类的方法 这与使用browserHistory.push有什么区别?与设置上下文类型相比,browserHistory.push作为一种编程重路由似乎要容易得多 谢谢 不确定您使用了哪些教程,因此这有点像是瞎猜 我假设您在第一个教程中使用了类似的东西

我正在完成一个高级react/redux教程,在课程中遇到了一个部分,讲师使用browserHistory.push链接到一个路由,而不是以前使用的创建一个名为contextTypes的静态类变量并将其设置为react.PropTypes.blah之类的方法

这与使用browserHistory.push有什么区别?与设置上下文类型相比,browserHistory.push作为一种编程重路由似乎要容易得多


谢谢

不确定您使用了哪些教程,因此这有点像是瞎猜

我假设您在第一个教程中使用了类似的东西,将路由器状态与redux状态同步,并将路由器对象放在上下文中。然后,您可以执行以下操作:

this.context.router.push(位置)
发送位置更改 这将把位置更改保存到redux状态,然后加载新路由

react router redux(和许多其他路由库)的核心用于管理导航到的路由的历史记录。这允许您在现代浏览器中使用HTML5历史API,返回到hashHistory(index.html/#page one)或内存历史,即呈现服务器端

历史记录包自带自己的API。在您的教程中,
browserHistory.push()
可能直接调用历史包的API()

这将导致应用程序加载新路由,但可能会绕过与redux商店的同步

您的第二个教程可能不使用react router redux或具有不同的设置