React Router 更改 URL 但不会更新页面,除非它从浏览器刷新 [英] React Router changes URL but doesn't update the page unless it was refresh from browser
问题描述
所以我在 YouTube 上看了很多关于 React 初学者的教程,但是,我在这个 URL (localhost/) 上单击设置按钮将 URL 更改为 (localhost/settings) 并且不会在浏览器中自动执行,如果我使用 URL (localhost/settings) 刷新浏览器,则从 Settings.js 更新和呈现的页面
如果您介意帮助我,这是我的代码和 JS:头文件
class Header extends Component {状态 = {MainMenuAppeared:false}MainMenuShow = () =>{this.setState({MainMenuAppeared: true})}MainMenuHide = () =>{this.setState({MainMenuAppeared: false})}使成为() {返回 (<div className="Header"><标题>{this.state.MainMenuAppeared ?(<div id="logo"onClick={this.MainMenuHide}><WebLogo/></div>) : (<div id="logo"onClick={this.MainMenuShow}><WebLogo/></div>)}{this.state.MainMenuAppeared ?(<路由器><div id="MainMenu"><链接到=/"><div className=MenuLists">主页</div></Link><链接到=/设置"><div className=MenuLists">设置</div></Link></div></Router>) : (<div></div>)}</标题>
);}}
Main.js(原 App.js)
function Main() {返回 (<div className="Main"><标题/><br></br><br></br><br></br><路由器><开关><路由精确路径=/";组件={Home}/><路由路径="/settings";组件={设置}/></开关></路由器>
);}
设置.js
function Settings() {返回 (<div className="设置">设置
);}
在组件树的顶部应该有一个 Router
.所以只需将 Header
移动到 Router
function Main() {返回 (<div className="Main"><路由器><标题/><br></br><br></br><br></br><开关><路由路径="/settings";组件={设置}/><路由精确路径=/";组件={Home}/></开关></路由器>