React Router v2.4 {queryKey:false}不再有效

时间:2016-06-02 11:50:40

标签: reactjs react-router

我已将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

我该如何解决这个问题?

我不希望在网址中显示其他查询密钥。我期望与角度路由器或骨干路由器具有相同的行为。

3 个答案:

答案 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)();