私の目標は、「戻る」ボタンを有効にすることですが、ユーザーが戻ってくるルート/パスが特定のカテゴリにある場合のみです。goBack()の前に履歴をチェックするv4
もっと正確には私は2種類のルートを持っています:/<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()
に適用されます。また、ユーザーはそれが少なく自然な感じ、私はそれを行う方法を知って、もちろん、私は、ユーザーが動き回るようlocalStorage
またはReduxのstore
にログインするようにサイドのトリックを使用しないようしたいと思いthis.props.history.push(newLocation)
で動き回ります。
状態は何らかの形で持続されていますか?私はユーザーが前後に何度か後方に行くと、この状態は期待どおりに機能するのでしょうか? – ted
いいえ、それは永続化されません、あなたはあなたが戻ったり、転送されるたびにそれを渡していることを確認する必要があります –
私はローカルストレージまたはreduxストアのリストとして場所を格納するかもしれないが、感謝:) – ted