【发布时间】:2021-04-23 15:51:16
【问题描述】:
我可以路由到另一个端点,但组件内容仅在手动刷新时出现。
我看到有人问过这个问题here、here,并且我一直在查看reactrouter docs 等。解决方案似乎总是“添加withRouter”或“确保将其包装在Router 中。我已经完成了这些事情,但遗憾的是没有地方。
代码如下:
App.js
import { BrowserRouter as Router, Route, Switch } from "react-router-dom";
function App() {
return (
<Router>
<Provider store={store}>
<div className="App">
<NavBar />
<Switch>
<Route exact path="/" component={Home} />
<Route path="/account" component={Account} />
</Switch>
</div>
</Provider>
</Router>
);
}
NavBar.js
import { BrowserRouter as Router, Link } from "react-router-dom";
import { withRouter } from "react-router";
function NavBar() {
return (
<Router>
<div className="navbar">
<h3>Connectory</h3>
<div className="buttons-container">
<Link>
<button>Settings</button>
</Link>
<Link to="/account"> // successfully redirects to /account, but doesn't render Account page content until refresh
<button>Account</button>
</Link>
</div>
</div>
</Router>
);
}
export default withRouter(NavBar);
编辑:在评论建议后,here's a code sandbox link 和这里是 Account.js 页面:
import React from "react";
export default function Account() {
return (
<div>
<h3>This is the Account page</h3>
</div>
);
}
【问题讨论】:
-
你的代码看起来没问题,尝试创建一个代码沙盒演示,以便我们可以看到全貌
-
能否请您添加帐户代码以便我们检查它是否正确?
-
@TaghiKhavari here you go
-
@letibelim 添加了!
标签: javascript reactjs react-router react-router-dom