【发布时间】:2018-06-25 23:13:23
【问题描述】:
鉴于以下组件代码,有没有办法在给定的毫秒数后自动重定向到另一个路由?
import React, { Component } from "react";
import {
Route,
NavLink,
HashRouter
} from "react-router-dom";
import {
Container,
Button,
Col,
Row } from 'reactstrap'
class Confirm extends Component {
render() {
return (
<div>
<Container>
<Row>
<p>Reprehenderit reprehenderit laborum excepteur voluptate elit incididunt eu. Ex laboris ex officia do aute non. Dolor proident reprehenderit labore nostrud irure consectetur. Laboris laborum amet veniam tempor nostrud ad. Laborum culpa duis voluptate amet ipsum magna minim reprehenderit. Aute ipsum eiusmod amet occaecat culpa qui nostrud eiusmod dolore anim culpa amet nostrud. Id laborum tempor dolor labore veniam aliqua ipsum esse pariatur. Nisi ipsum eiusmod do eiusmod minim adipisicing aliqua. Nostrud tempor aliquip cupidatat sunt aute esse duis cupidatat culpa elit consectetur eu.</p>
</Row>
</Container>
</div>
);
}
}
export default Confirm;
查看文档,react-router-dom 中似乎有一些功能,不是吗?
非常感谢。
编辑:在研究了根据答案操纵一些事情之后,我做了一些改变并想出了这个:
import React, { Component } from "react";
import {
Route,
NavLink,
HashRouter,
BrowserRouter
} from "react-router-dom";
import {
Container,
Button,
Col,
Row } from 'reactstrap'
import './Confirm.css';
class Confirm extends Component {
componentDidMount() {
setTimeout(() => {
BrowserRouter.push("./home")
}, 2000)
}
render() {
return (
<div>
<Container>
<Row>
<p>Reprehenderit reprehenderit laborum excepteur voluptate elit incididunt eu. Ex laboris ex officia do aute non. Dolor proident reprehenderit labore nostrud irure consectetur. Laboris laborum amet veniam tempor nostrud ad. Laborum culpa duis voluptate amet ipsum magna minim reprehenderit. Aute ipsum eiusmod amet occaecat culpa qui nostrud eiusmod dolore anim culpa amet nostrud. Id laborum tempor dolor labore veniam aliqua ipsum esse pariatur. Nisi ipsum eiusmod do eiusmod minim adipisicing aliqua. Nostrud tempor aliquip cupidatat sunt aute esse duis cupidatat culpa elit consectetur eu.</p>
</Row>
</Container>
</div>
);
}
}
export default Confirm;
但是由于某种原因推送不起作用。这是因为hashrouter 和browserrouter 之间的冲突吗?
我得到的是这样的:
【问题讨论】:
-
给定毫秒数,你在哪里运行计时器?可能的重定向方式是使用
Redirect组件或使用this.props.history.push(.....)。 -
在 setTimeout 中执行一个函数,该函数以编程方式路由到所需的 url,检查如何以编程方式导航,stackoverflow.com/questions/44127739/…
标签: javascript reactjs redirect react-router react-router-dom