Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 什么';What’browserHistory.push()和context.router.push()之间的区别是什么_Reactjs_React Router_Browser History - Fatal编程技术网

Reactjs 什么';What’browserHistory.push()和context.router.push()之间的区别是什么

Reactjs 什么';What’browserHistory.push()和context.router.push()之间的区别是什么,reactjs,react-router,browser-history,Reactjs,React Router,Browser History,我正在学习React Route来帮助我构建一个应用程序,在成功登录后可以从登录页面重定向到主页 我在这里阅读了官方教程: 在本课中,他们介绍了两种以编程方式导航的方法,即browserHistory和context.route。他们说browserHistory有一个潜在的问题: 若您向路由器传递的历史记录与此处使用的不同,那个么它将无法工作。使用browserHistory以外的任何东西都不是很常见,所以这是可以接受的做法 如果您向路由器传递的历史记录与此处使用的不同,您能给我一个关于什么是

我正在学习React Route来帮助我构建一个应用程序,在成功登录后可以从登录页面重定向到主页

我在这里阅读了官方教程:

在本课中,他们介绍了两种以编程方式导航的方法,即browserHistory和context.route。他们说browserHistory有一个潜在的问题:

若您向路由器传递的历史记录与此处使用的不同,那个么它将无法工作。使用browserHistory以外的任何东西都不是很常见,所以这是可以接受的做法

如果您向路由器传递的历史记录与此处使用的不同,您能给我一个关于什么是
的示例吗


我在应用程序中尝试了这两种方法,但没有发现任何区别。谢谢

这是一个相当古老的教程。我建议你改为去看电影

您提供的示例使用browserHistory实例直接调用history api方法。如果您将react router配置为使用浏览器历史记录,这将起作用,但有不同的历史记录类型(哈希历史记录、内存历史记录等),甚至可能有多个browserHistory实例。虽然所有不同的历史记录类型都支持推送方法,但如果最初将react router配置为使用哈希历史记录,但在组件中导入浏览器历史记录,则推送调用将无法工作,因为您的路由器未配置为侦听该浏览器历史记录实例

虽然您可以使用上下文来获取路由器实例,但更干净的方法是使用HOC将路由器实例作为道具注入到组件中。然后,您可以调用router.push,而不必担心正在使用哪种历史记录

你可以读更多关于历史的书