react-routerでログイン処理を行いたい
現在react-routerにてログイン処理を実装しております。
下記のような形式で、ルートへのリクエストでAuthコンポーネントにアクセスし、
ログイン済みならTodoListコンポーネント、
ログインが未処理であればLoginコンポーネントにリダイレクトをしたいと考えております。
また全てのリクエストに共通でHeaderコンポーネントを表示したいです。
現在作成中のソースコード
javascript
1 2class App extends Component { 3render() { 4 return ( 5 <div className="App"> 6 <Header /> 7 <Switch> 8 <Route exact path="/" component={Auth} /> 9 <Route path="/login" component={Login} /> 10 </Switch> 11 </div> 12 ); 13 } 14} 15 16class Auth extends Component { 17 render() { 18 return( 19 //loggedはログインのフラグです。 20 this.props.logged ? 21 <Switch> 22 <Route exact path="/" component={TodoList} /> 23 </Switch> : 24 <Redirect 25 to={{ 26 pathname: "/login", 27 state: { from: this.props.location } 28 }} 29 /> 30 ); 31 } 32} 33 34class Login extends Component { 35 render() { 36 return( 37 <div> 38 ログイン画面 39 </div> 40 ); 41 } 42} 43
この形式ですと、直接"/login"URLにアクセスした場合はLoginコンポーネントが表示されますが、リダイレクト後ではHeaderコンポーネントのみしか表示がされません。
ルーティングの記載方法に誤りはありますでしょうか。
どうぞ宜しくお願い致します。
補足情報(FW/ツールのバージョンなど)
"react-router-dom": "^4.3.0-rc.3",
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/22 11:23