我试图在React的Router之外的组件中使用Link,但出现错误:
您不应在
之外使用<Router>
我想呈现我的App组件,该组件包含所有必需的子组件以及HeaderIcons组件,这些组件必须显示在顶部的每个页面中。 HeaderIcons组件包含指向特定路由的链接。
这是App中的渲染方法:
render() {
return (
<Router history={browserHistory}>
<div>
<Route onEnter={this.onRouteUpdate.bind(this)} exact path="" component={Configration} />
<Route onEnter={this.onRouteUpdate.bind(this)} path="/PersonalData" component={Headerlayout} />
</div>
</Router>
);
}
onRouteUpdate(routerState) {
window.scrollTo(0, 0);
sendLocation(routerState.location);
}
ReactDom.render(<App />, document.getElementById("content"));
ReactDom.render(<HeaderIcons />, document.getElementById("configuration_icons"));
这是HeaderIcons中的链接:
<Link
to="/PersonalData"
className="icon"
onMouseOver={this.onmouseoverHandler}
onMouseOut={this.onmouseooutHandler}>
<img src="/static/images/user.png" alt="User" />
</Link>
有没有办法通过React Router v4实现这一目标?
答案 0 :(得分:0)
您可能需要遵循下一种方法来构建应用程序。 (使用React-Router)
import { BrowserRouter, Switch, Route } from 'react-router-dom';
// in render method of your App component
<BrowserRouter>
<div className="app">
<HeaderComponentWithLinks> // <- see it under BrowserRouter component
<div className="content">
<Switch>
<Route exact path="/" component={HomePage} />
<Route path="/about" component={AboutPage}/>
</Switch>
</div>
</div>
</BrowserRouter>
现在您将不会看到错误。