【发布时间】:2020-12-31 02:00:08
【问题描述】:
我正在尝试以编程方式更改 URL。
网址已更改,但页面未刷新/呈现。 我试图找到正确的答案超过 2 小时,但没有成功。我看到 URL 确实发生了变化,但组件没有刷新。 我的布局组件如下所示:
export default class Layout extends Component {
public render() {
return (
<BrowserRouter>
<section className="layout">
<header>
<Header />
</header>
<main>
<Switch>
<Route path="/login" component={Login} exact />
<Route path="/register" component={Register} exact />
<Route path="/home" component={Main} exact />
<Redirect from="/" to="/home"></Redirect>
</Switch>
</main>
<footer>
<Footer />
</footer>
</section>
</BrowserRouter>
);
}
}
我的主要组件如下所示:
import React, { Component } from "react";
import './main.css'
import history from 'history/browser';
interface MainProps {
registerButton: string,
loginButton: string;
}
export default class Main extends Component<MainProps, any>{
public constructor(props: MainProps) {
super(props);
}
public render() {
return (
<div className="main">This is the Main Section
<div>
<button onClick={this.onRegisterButtonClicked}>REGISTER</button>
<button onClick={this.onLoginButtonClicked}>LOGIN</button>
</div>
</div>);
}
private onLoginButtonClicked = () => {
history.push('/login');
}
private onRegisterButtonClicked = () => {
}
}
【问题讨论】: