【发布时间】:2019-01-09 12:47:52
【问题描述】:
我正在开发一个使用 React 路由器的简单 React 应用程序。我的应用程序从 app.js 开始,并在 app.js 中设置了以下路由器:
<BrowserRouter>
<MuiThemeProvider theme={theme}>
<NavigationBar onLogout={self.userLoggedOut} loggedIn={self.state.loggedIn} />
<div className="content-area container-fluid">
<Switch>
<Route exact path="/" component={HomePage} />
<Route exact path="/login" component={LoginPage} />
<Route exact path="/page1" component={Page1} />
<Route exact path="/page2" component={Page2} />
</Switch>
</div>
</MuiThemeProvider>
</BrowserRouter>
在我的 app.js 构造函数中,我有 console.log 来触发一条消息,说明构造函数已被调用。最初,我在第一次进入应用程序时看到消息触发,然后如果我使用链接在页面之间导航,我看不到任何后续消息。但是,如果我转到浏览器地址栏并手动输入 url(例如http://localhost:3000/login),页面加载成功,但来自 app.js 构造函数的消息会再次触发。如何让 react/react-router 应用程序接受与链接相同的手动输入的 url,从而使应用程序不会重新加载?
【问题讨论】:
-
你不能这样做。两种情况都有区别
-
这是 React Router 的限制吗?因为在 Gmail 中,您可以在浏览器的地址栏中输入 url,它不会重新加载应用程序。
标签: reactjs react-router react-router-v4