Объект истории имеет записи и текущий индекс. Я использовал их следующим образом:
ель - включить кнопку «Вернуться», но только в том случае, если маршрут / путь, по которому пользователь должен вернуться, находится в определенной категории.
Точнее у меня есть два вида маршрутов:/<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
или излишекstore
когда пользователь перемещается, он становится менее естественным, и я знаю, как это сделать.