【发布时间】:2018-08-19 06:07:33
【问题描述】:
我遇到了一个小问题。我有Root 组件,其中包含Switch 和两个Route。当用户加载页面时,我要呈现初始的<Route path="/" /> 此路由包含一个组件,其中Route 指向我要显示的画廊。
当用户单击图像时,路线会发生变化,另一组图像会根据路线变化而发生变化。这按预期工作。但是当使用Root 内的第二个<Route path="/login" /> 时,路径会发生变化,但会呈现初始路径。由于路径不匹配,即使是画廊也没有渲染,但渲染了Header 和HeaderAbout。怎么样?
class Root extends Component {
render() {
return (
<div>
<Navigation />
<Switch>
<Route component={Home} path="/" />
<Route component={Login} exact path="/login" />
</Switch>
<Footer />
</div>
);
}
}
初始路线内
class Home extends Component<Props> {
_scrollDown = event => {
event.preventDefault();
this.gallery.scrollIntoView({ behavior: 'smooth' });
};
render() {
return (
<div>
<Header onClick={event => this._scrollDown(event)} />
<HeaderAbout />
<Route
render={props => (
<div
ref={node => {
this.gallery = node;
}}
>
<RelayGallery {...props} />
</div>
)}
path="/home/:galleryRef?"
/>
</div>
);
}
}
【问题讨论】:
标签: javascript reactjs ecmascript-6 react-router