我的路线设置如下:
<Container>
<Input />
<Switch>
<Route path='/' exact component={LatestMovies}/>
<Route path='/movie/:id' component={MovieWithDetails}/>
<Route component={PageNotFound}/>
</Switch>
</Container>
1。我如何设置路由器,以便Input
组件中除Switch
组件之外的所有其他组件都可以看到PageNotFound
组件?
我知道我可以手动将Input
组件添加到其他组件中,但是想知道是否有更好的方法吗?
2。在MovieWithDetails
组件内部,我正在使用fetch,在那里我获取带有ID的电影,这是通过单击LatestMovies
组件中的链接通过路由器道具获得的。
该链接和任何ID也可以手动输入,所以我想知道,我该如何处理PageNotFound
组件的显示?
答案 0 :(得分:0)
1-您尝试过使用多个组件吗?像这样:
<Switch>
<Input/>
<Route path='/' exact component={LatestMovies}/>
<Route path='/movie/:id' component={MovieWithDetails}/>
</Switch>
<Switch>
<Route path='/somepath' component={PageNotFound}/>
</Switch>
2-我认为这是主观的。在我看来,我将显示一条反馈,指出没有电影具有键入的ID,并且我不会重定向到PageNotFound组件。但是,如果您想这样做,只需使用简单的“ this.props.history.push('/ somepath')”即可