我已将react-router
更新为最新版本 - 2.4.1
我在我的应用程序中使用hashHistory
import { Router, useRouterHistory } from 'react-router'
import { createHashHistory } from 'history'
// useRouterHistory creates a composable higher-order function
const appHistory = useRouterHistory(createHashHistory)({ queryKey: false })
<Router history={appHistory}/>
现在我收到了错误
Warning: Using { queryKey: false } no longer works.
Instead, just don't use location state if you don't want a key in your URL query string
我该如何解决这个问题?
我不希望在网址中显示其他查询密钥。我期望与角度路由器或骨干路由器具有相同的行为。
答案 0 :(得分:6)
此警告实际上并非来自React Router,而是来自它使用的history module。事实上,最新版本(3。0。0,2016年5月30日)根本不适用于React Router:
未捕获的不变违规:您提供了使用历史记录v3.x创建的历史记录对象。此版本的React Router与v3历史对象不兼容。请改用历史v2.x。
此警告存在as of v2.5.1(2016年6月24日)。
所以最简单的解决方案就是使用React Router使用的相同版本,由package.json
提供:
"history": "^2.0.1"
之后,queryKey
选项按预期工作。
答案 1 :(得分:0)
您可以使用const history = useRouterHistory(createHashHistory)();
,但刷新或返回按钮会显示白页。它与browserHistory
非常相似,需要mod_rewrite或中间件才能正常运行。
也许有人知道他们为什么会这样改变它,因为对我来说它没有意义。
答案 2 :(得分:0)
这对我有用
const appHistory = useRouterHistory(createHashHistory)();