我正在尝试让默认页面正常工作,但会发生的是每次都在渲染它。这就像Switch
不会仅在匹配的第一条路线上停止。
这是我的代码:
index.js
ReactDOM.render(
<BrowserRouter>
<Provider store={store}>
<Switch>
<App/>
</Switch>
</Provider>
</BrowserRouter>,
document.getElementById("root")
);
App.js
class App extends React.Component {
...
render() {
return (
<div>
<AppGuest location={location}/>
<GuestRoute location={location} component={ReservationsPage}/>
</div>
);
}
}
AppGuest.js
class AppGuest extends React.Component {
componentDidMount() {
}
render() {
const { location} = this.props;
return (
<div>
<GuestRoute exact location={location} path="/" component={ReservationsPage}/>
<GuestRoute exact location={location} path="/login" component={LoginPage}/>
<GuestRoute exact location={location} path="/signup" component={SignupPage}/>
</div>
);
}
}
这是我的GuestRoute.js
const GuestRoute = ({ component: Component, ...rest }) => (
<Route
{...rest}
render={props =>
<div>
<Navigation/>
<Component {...props} />
</div>
}
/>
);
是否有可能因为我有这么多div,Switch
无法正确检测路线?
修改:尝试将<div>
替换为<React.Fragment>
和[]
结构,但我仍遇到同样的问题。
我想我会有一个包含所有路线的巨大索引文件。