- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要将用户重定向到 React 组件之外,这通常是使用 history
完成的。与 react 路由器。
// history.js
const history = createBrowserHistory();
export default history;
// App, setting up router
import { HashRouter as Router } from 'react-router-dom';
import history from './history';
...
<HashRouter history={history}>...</HashRouter> // problem
// Non-component file
import history from './history';
history.push('/target');
自
HashRouter
不接受历史 Prop ,而是在内部处理历史,并指示开发人员使用
withRouter
为了曝光
history
对于组件,如何在组件外部进行重定向并不明显。
HashRouter
我需要使用
history
在组件之外(意味着我不能使用
withRouter
)。
最佳答案
是的,有一种方法可以使用 history
和一个基于哈希的路由器在一起。
创建历史实例时,使用 createHashHistory
而不是 createBrowserHistory
.
// myCreatedHistory.js
import { createHashHistory } from 'history';
export default createHashHistory();
而不是使用
HashRouter
,使用低级
Router
相反,并通过
history
Prop 给它,像这样。
// App
import { Router } from 'react-router-dom';
import history from '../myCreatedHistory';
...
<Router basename="/" history={history}>...</Router>
然后你可以导入
history
从任何地方(比如中间件)。
// Middleware, or anywhere
import history from '../myCreatedHistory';
history.push('/target');
关于react-router - 有没有办法在 HashRouter 和 react-router v4 中使用历史记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63612097/
我正在使用 react-router-dom 进行路由,并且由于我也在使用 GitHub Pages,因此我需要在 中使用 HashRouter Router.jsx 像这样 import React
我最初使用 react-router 中的 hashHistory 并使用 this.props.history.push() 以编程方式导航我的 React 应用程序。但随着转向使用 react-r
我遇到了 react 和 react-router 的问题。当我单击链接时(在我的示例中,Footer.js 中的 contact),url 发生变化,但未显示所需的组件 Location .当我刷新
我的应用程序中有一个 LoginContainer 组件,其中包含两个 View :一个登录表单和一个注册表单。因此,基本上这两个组件位于同一页面上,但是,根据用户单击的按钮,仅呈现其中一个组件。 到
在我通过 react-router-dom 在客户端设置路由后,我得到的只是空白的空页面。 所以,我的设置就在这里。我敢打赌出了什么问题,但我无法理解。 那怎么会呢?怎么了? 索引: import R
我想添加一个没有应用程序作为父级的登录页面。这是我当前的 HashRouter 设置:
我在Electron项目中使用了HashRouter,但是由于某些原因,HashRouter不会刷新导航页面,这是我需要执行的操作。 关于我单击路线时如何刷新页面的任何想法? import { Has
我有一个 ConnectedRouter,我想将哈希添加到所有路由,所以我添加了 HashRouter 组件,如下所示: // @flow import React from 'react'; imp
我一直在尝试将 Google Analytics 与我的 React 应用程序集成,该应用程序使用 react-router-dom v4 中的 HashRouter。但它根本不起作用提示: Warn
我是编程新手,如果我阅读官方文档,这会让我有点难以理解。 我正在阅读有关 React Router 4 from here 的内容 在这篇文章中,作者谈论的是 和 这就是他提到的: HashRoute
我在 Chrome 上使用 React/redux/react-router 时遇到了一些奇怪的行为。我有一个如下所示的组件: const PageHeader = withRouter( props
我决定不再使用 HasRouter,而是使用 BrowserRouter。 我关闭了所有导入: import { HashRouter} from 'react-router-dom'; 到 impo
我想使用那个 Hashrouter,但是当我尝试时,我得到了这个错误: is not able to match the URL "/" because it does not start with
我们正在更换 react-router-dom s HashRouter与 BrowserRouter并希望将旧路由重定向到新路由。 我标记了 nginx因为我不介意在那里进行重定向。 :) 假设我们
我正在 React 中创建一个博客以部署在 GitHub 页面 . 问题 创建了我的 React 应用程序并添加了 浏览器路由器 对于导航,在本地主机上一切正常,应用程序成功部署在 上。 GitHub
我需要将用户重定向到 React 组件之外,这通常是使用 history 完成的。与 react 路由器。 // history.js const history = createBrowserHis
我遇到了在我的应用程序用户使用 Keycloak 进行身份验证后发生的重定向问题。 我的应用程序使用 react-router hashRouter。当初始重定向发生时,我会得到一个如下所示的 red
我有非 SPA 服务器端应用程序和仅限于当前页面的 React 应用程序,/some/static/page . 应用程序有 在 在所有页面上并依赖于它,这是无法更改的。 这是 React 16、Re
我的问题当我运行 npm run dev 时,应用程序加载并且一切正常,我可以转到定义为的路线并能够看到该组件。但是,当我执行 npm run buildDev 并加载应用程序时,它会很好地加载“/”
我是一名优秀的程序员,十分优秀!