前提・実現したいこと
例えばユーザの詳細ページUserDetail
(URL:/user/:user_name
)があったとします。このURLへアクセスしたとき、動的にjavascriptで該当ユーザの情報を取得します。この際の取得のリクエストにて404が起きたときに、404用のNotFoundPage
にリダイレクトして固定の内容を表示します。
この処理の際に、react-router-domの<Redirect>
やreact-router-reduxのpush
、replace
を使うとURLが書き換わってしまいます。これを元の/user/:user_name
というURLのまま、Not foundのRouteの内容を表示させることは可能でしょうか。
発生している問題・エラーメッセージ
URLを書き換えずにNotFoundなRouteを表示したいが、URLが書き換わってしまう。
/user/:user_name
にアクセスする- Routeに定義されているので
UserDetail
のComponentが表示される UserDetail
内で動的にユーザ情報取得処理が実行される- 正常であればそのまま
UserDetail
のComponentが書き換わり、ユーザの詳細が表示される - 404が発生した際、
UserDetail
の代わりにNotFoundPage
のComponentの内容が表示されて欲しい
ようするに、URLを実際には書き換えずに、Switchの該当Routeが表示される方法がないかを知りたいです。
該当のソースコード
javascript
1<Switch> 2 <Route exact path="/user/:user_name" component={UserDetail}/> 3 <Route component={NotFoundPage}/> 4</Switch>
試したこと
react-router-domやreact-router-reduxのAPIをいろいろ調べてみた。
Switch
内で一致したmatchを「やっぱうちは受け付けません!」と言える処理があればそのままNotFoundPage
に流れてくれそうですが…
補足情報(FW/ツールのバージョンなど)
react@16.2.0
react-dom@16.2.0
react-router@3.2.1
react-router-dom@4.2.2
react-router-redux@5.0.0-alpha.9

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/18 08:27
2018/04/18 08:32
2018/04/18 08:35
2018/04/18 08:58
2018/04/19 00:10