reactjs - 有没有办法在 url 更改时更新在单个 spa 中注册的应用程序的历史位置?
问题描述
我在 single-spa 中有两个应用程序,一个在 React 中,另一个在 Vue 中。React 应用程序使用历史库进行导航。下面给出的是我的 React 应用程序文件:
历史.js
import { createBrowserHistory } from 'history'
export const history = createBrowserHistory({
basename: '/myapp,
forceRefresh: true
})
应用程序.js
import React, {Component} from 'react';
import { Router, Switch, Route } from 'react-router-dom';
import history from ‘../history.js’;
class App extends Component {
constructor(props){
super(props);
}
render(){
return (
<Router history={history}>
<Switch>
<Route exact path="/user" component={User} />
<Route exact path="/" component={Home} />
</Switch>
<Router />
)
}
}
我在以下情况下遇到问题:
- 我在 React 应用程序的路径 https://localhost:3000/myapp/user 并切换到 Vue 应用程序(使用导航栏菜单)。
- 现在,当我切换回 React 应用程序时,url 显示 https://localhost:3000/myapp 理想情况下应该加载我的 Home 组件。
- 但是现在历史仍然有旧的位置(https://localhost:3000/myapp/user),然后加载旧的用户组件。
有没有办法在 url 更改时更新历史记录?
解决方案
我没有找到如何更改历史记录,但我希望您修复一些语法错误。Meybe 修复错误可以帮助您。
历史.js
export const history = createBrowserHistory({
basename: '/myapp, // basename: '/myapp',
forceRefresh: true
})
应用程序.js
<Switch>
<Route exact path="/user" component={User} /> // <Route path="/user" component={User} />
<Route exact path="/" component={Home} />
</Switch>
推荐阅读
- floris - floris.tools.power_rose.load() 需要类实例化
- python - 用 PyQt5 解析 JS 动态页面
- javascript - 显示结果后重置计算器显示值
- swift - 如何将 Alamofire 响应转换为字符串?
- macos - 在 macOS Mojave 上编译 Elmer FEM 会导致致命错误:找不到“string.h”文件
- reactjs - 如何用 NavigationEvents 开玩笑地测试 React Native 组件
- python - 为什么这段代码不返回元组数组?
- typescript - 打字稿:从通用接口中省略属性
- java - 在java中实现链表的麻烦
- linux - 编译内核驱动程序和 .c 文件的单个 makefile