我的目标是启用“返回”按钮,但前提是用户返回的路线/路径属于某个类别。
更准确地说,我有两种 Routes :/<someContent>
和/graph/<graphId>
. 当用户在图表之间导航时,他们应该能够返回到上一个图表,但不能返回到/...
路线。这就是为什么我不能简单地运行history.goBack()
,我需要先检查位置。
const history = createHashHistory();
const router = (
<ConnectedRouter history={history}>
<Switch>
<Route exact path='/' component={Home}></Route>
<Route exact path='/extension' component={Home}></Route>
<Route exact path='/settings' component={Home}></Route>
<Route exact path='/about' component={Home}></Route>
<Route exact path='/search' component={Home}></Route>
<Route exact path='/contact' component={Home}></Route>
<Route path='/graph/:entityId' component={Graph}></Route>
</Switch>
</ConnectedRouter>
);
我想在Graph
组件中实现这样的东西:
if (this.props.history.previousLocation().indexOf('graph') > -1){
this.props.history.goBack();
} else {
this.disableReturnButton();
}
这个问题也适用于goForward()
我想禁用“前进”按钮(如果不适用)。用户也四处走动this.props.history.push(newLocation)
显然,我想避免在用户四处移动时使用诸如登录localStorage
或 redux 之类的小技巧store
,这感觉不太自然,而且我知道该怎么做。