Verifique a localização anterior do histórico antes de o goBack () reagir ao roteador v4

Meu objetivo é ativar o botão "Voltar", mas apenas se a rota / caminho para o qual o usuário voltar estiver em uma determinada categoria.

Mais precisamente, tenho dois tipos de rotas:/<someContent> e/graph/<graphId>. Quando o usuário navega entre os gráficos, deve poder voltar ao gráfico anterior, mas não a um/... rota. É por isso que não posso simplesmente correrhistory.goBack(), Preciso verificar o local primeiro.

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>
);

Eu gostaria de implementar algo assim noGraph componente:

if (this.props.history.previousLocation().indexOf('graph') > -1){
    this.props.history.goBack();
} else {
    this.disableReturnButton();
}

Esta pergunta também se aplica agoForward() como eu gostaria de desativar o botão "encaminhar", se não for aplicável. Além disso, o usuário se move comthis.props.history.push(newLocation)

Obviamente, eu gostaria de evitar o uso de truques laterais, como fazer loginlocalStorage ou um reduxstore conforme o usuário se move, parece menos natural e eu sei como fazê-lo.

questionAnswers(2)

yourAnswerToTheQuestion