私が反応し、角度から移行し、シンプルなJWTは、フラックスは、ルートV4でアプリを反応させ、認証を実装しようとしているため初心者午前たときにルータがV4認証されたルートにリダイレクト反応します。 Rails APIへのリクエストを正常に送信し、JWTトークンを取得しました。これで、LoginActionの認証されたRouteコンポーネントにアプリケーションをリダイレクトするプログラム的に論理的な方法が見つかりませんでした。私はAuthenticatedAppコンポーネントにページをリダイレクトする有効なトークンとAPIへのリクエストが成功した後、私のLoginActionのでが正常にユーザーサインイン
index.js
import React from 'react';
import ReactDOM from 'react-dom'
import { BrowserRouter as Router, Route } from 'react-router-dom'
import {createBrowserHistory} from 'history';
import Layout from './components/Layout';
import Login from './components/Login';
import Signup from './components/Signup';
import registerServiceWorker from './registerServiceWorker';
import AuthenticatedApp from './components/AuthenticatedApp';
const app = document.getElementById('root');
ReactDOM.render(
<Router history={createBrowserHistory}>
<div>
<Route exact path="/" component={Layout} />
<Route path="/login" component={Login} />
<Route path="/signup" component={Signup} />
<Route path="/record" component={AuthenticatedApp} />
</div>
</Router>,
app);
registerServiceWorker();
LoginAction.js
。しかし、ルート4のバージョンはインターネットでのサポートがほとんどありません。
import AppDispatcher from '../dispatchers/AppDispatcher.js';
import LOGIN_USER from '../constants/LoginConstants';
import LOGOUT_USER from '../constants/LoginConstants';
import RouterContainer from '../services/RouterContainer'
export default {
loginUser: (jwt) => {
var savedJwt = localStorage.getItem('jwt');
AppDispatcher.dispatch({
actionType:LOGIN_USER,
jwt: jwt
});
if (savedJwt !== jwt) {
{want to redirect to '/record' of AuthenticatedAPP component}
localStorage.setItem('jwt', jwt);
}
},
logoutUser:() => {
RouterContainer.get().transitionEnter('/home');
localStorage.removeItem('jwt');
AppDispatcher.dispatch({
actionType:LOGOUT_USER
});
}
}
最後に、私はまだルートV4におけるこれらgetCurrentQuery(),
transitionTo
の代替になるものを発見していません。