reactjs - React 路由器导航到特定路由而无需再次推送
问题描述
我有一个有 6-7 条路线的网络应用程序。用户按以下顺序查看屏幕:
- 家
- 球员名单
- 输入一个数字
- 游戏画面
- 输赢的游戏结束画面
在屏幕 5之后,我想再次显示屏幕 3进行播放。所以我不再需要“游戏画面”和“游戏结束画面”并将它们从历史中清除并返回到画面 3。
我正在使用<MemoryRouter>
组件来防止 url 更改并使用自定义“返回”按钮返回。我实际上想知道是否可以手动更改路由堆栈(删除其中一些等)。或者我应该使用哪种方法?顺便说一句,我尝试了所有这些。
我在console.log(history)
这里分享一个
{length: 6, action: "PUSH", location: {…}, index: 5, entries: Array(6), …}
length: 7
action: "PUSH"
location: {pathname: "/gamescreen", search: "", hash: "", state: undefined, key: "pwi569"}
index: 6
entries: Array(7)
0: {pathname: "/", search: "", hash: "", state: undefined, key: "8zl7xq"}
1: {pathname: "/playerlist", search: "", hash: "", state: undefined, key: "ximj74"}
2: {pathname: "/enteryournumber", search: "", hash: "", state: undefined, key: "hxx63i"}
3: {pathname: "/gamescreen", search: "", hash: "", state: undefined, key: "s601nx"}
4: {pathname: "/modalgameend", state: {…}, search: "", hash: "", key: "i8chfy"}
5: {pathname: "/enteryournumber", search: "", hash: "", state: undefined, key: "ozqjyr"}
6: {pathname: "/gamescreen", search: "", hash: "", state: undefined, key: "pwi569"}
length: 7
__proto__: Array(0)
createHref: ƒ createPath(location)
push: ƒ push(path, state)
replace: ƒ replace(path, state)
go: ƒ go(n)
goBack: ƒ goBack()
goForward: ƒ goForward()
canGo: ƒ canGo(n)
block: ƒ block(prompt)
listen: ƒ listen(listener)
解决方案
您需要使用以下内容从历史堆栈中删除以前的条目。
this.props.history.replace("/enteryournumber");
希望这对你有用。
推荐阅读
- salesforce - 如何将角色字段从“帐户联系人关系”集成到联系人对象字段集
- ruby - 为什么 ngrok 向我发送 403 Forbidden
- python - 如何使用python对齐linux输出
- php - 使用命名管道,包括关于 php 语法错误的命令
- sql - 选择分区满足条件的行(PostgreSQL)
- f# - 在这种情况下是否可以使用不可变集合?
- sql - 资产库存数据库的 SQL 计数查询
- stm32 - STM32G070CBT6 上的 GPIO 出现奇怪问题 - 寄存器在 ODR 寄存器中显示输出值,但引脚电平没有切换
- here-api - HERE API:带有某些航路点的路由似乎离题很远。为什么?
- django - 为什么django既有authenticate方法又有login方法?