Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.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 使用自定义哈希历史记录确认导航无效_Reactjs_React Router - Fatal编程技术网

Reactjs 使用自定义哈希历史记录确认导航无效

Reactjs 使用自定义哈希历史记录确认导航无效,reactjs,react-router,Reactjs,React Router,当我在应用程序中使用自定义哈希历史记录时,确认导航机制不起作用。我已经修改了react router confirm导航示例以使用自定义哈希历史记录,并成功地再现了该问题 import React from 'react' import { render } from 'react-dom' import { createHashHistory } from 'history' import { browserHistory, Router, Route, Link, useRouterHist

当我在应用程序中使用自定义哈希历史记录时,确认导航机制不起作用。我已经修改了react router confirm导航示例以使用自定义哈希历史记录,并成功地再现了该问题

import React from 'react'
import { render } from 'react-dom'
import { createHashHistory } from 'history'
import { browserHistory, Router, Route, Link, useRouterHistory, withRouter } from 'react-router'

let myCustomHashAppHistory = useRouterHistory(createHashHistory)({ queryKey: false })
我设置了路由器离开钩子(router.setRouteLeaveHook),并在钩子中返回一个字符串,表示我不想离开路由。 当我按下后退浏览器按钮时,浏览器URL将更改为后退按钮历史记录导航到的任何位置,并且reactRouter将正确显示确认对话框。在这个对话框中,我按下“取消”按钮,表示我不想离开管线,我的组件保持可见,管线不会改变。问题是浏览器URL没有变回我按下“后退”按钮之前的原始位置

还有人看到了吗

这就是我在examples/confirm navigation/app.js中更改的内容,以重现问题

import React from 'react'
import { render } from 'react-dom'
import { createHashHistory } from 'history'
import { browserHistory, Router, Route, Link, useRouterHistory, withRouter } from 'react-router'

let myCustomHashAppHistory = useRouterHistory(createHashHistory)({ queryKey: false })
然后在应用程序渲染中,我传递myCustomHashAppHistory:

render((
  <Router history={myCustomHashAppHistory}>
    ...
    ...
渲染((
...
...