javascript - React Router history.goBack 在使用时不起作用
问题描述
在一个React
应用程序中,我Router
这样使用:
let path='/';
if(condition){
path='/dashboard'
}else if(condition){
path='/login'
}
<Router>
<Redirect to={path} />
<Switch>
<Route path="/dashboard"><Dashboard /></Route>
<Route path="/login"><Login /></Route>
</Switch>
</Router>
这工作正常。但我想Back Button
在每个页面中实现一个沿着页面移动。我这样做:
// The login.jsx component
function Post(props) {
return (
<div>
<button type="button" onClick={() => props.history.goBack()}>
Go back
</button>
</div>
);
}
但我得到这个错误:
Uncaught TypeError: Cannot read property 'goBack' of undefined
然后我采用另一种方法。我使用useHistory
:
import React from "react";
import {
BrowserRouter as Router,
Switch,
Route,
Redirect,
Link,
useHistory,
} from "react-router-dom";
// The login.jsx component
function Post(props) {
let history = useHistory();
return (
<div>
<button type="button" onClick={() => history.goBack()}>
Go back
</button>
</div>
);
}
而这一次,当我点击Go Back
按钮时,什么也没有发生!
如果我使用它执行此程序,<Link/>
则效果很好。但是当我使用<Redirect />
方法时,它不起作用。我的重定向方法有什么替代方法吗?还是有针对当前方法的解决方案?谢谢。
解决方案
推荐阅读
- node.js - Angular Universal - 服务器和客户端中的不同 URL 类
- android - 如何使用嵌套的 Json 数组响应解析 Json 对象
- regex - 正则表达式模式不匹配
- java - IndexOutOfBoundsException error while trying to print first 4 elements of an ArrayList
- bash - 即使 `bashrc` 中存在路径,也无法运行路径中的任何文件
- node.js - 尝试在 docker 容器中运行 composer-rest-server 时出现节点 EACCESS 错误
- python - Python Gurobi:无法向模型添加约束
- go - 在 Golang 中比较两张地图
- angular - 悬停一个项目以显示特定于它的 div
- python - 如何从画布中获取所有像素?