React Router - BrowserHistory.Push VS. ContextTypes React路由器 - 浏览器历史记录推送 VS. 上下文类型

5
我正在完成一个高级的react/redux教程,在课程中遇到了一个问题。教练使用browserHistory.push跳转到一个路由,而不是之前所用的创建静态类变量contextTypes并将其设置为React.PropTypes.blah blah blah的方法。
那么使用browserHistory.push和设置context types有什么区别?相对于设置context types,browserHistory.push作为一种程序化重定向似乎更容易。
谢谢!
1个回答

0

不确定您使用了哪些教程,所以这有点冒险。

我猜您在第一个教程中使用了类似于https://github.com/reactjs/react-router-redux的东西,将路由状态与redux状态同步,并在上下文中拥有路由对象。然后您可以执行以下操作:

this.context.router.push(location)来分派位置更改 这将保存位置更改到您的redux状态中,然后加载新路由。

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

history包带有自己的API。在您的教程中,browserHistory.push()可能直接调用了该历史包的API(请参见此处)。

这将导致应用程序加载新路由,但可能会绕过与Redux存储同步。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接