したがって、https://github.com/erikras/react-redux-universal-hot-example/router.js
のボイラープレートの のコードと同様です。 master branch
const requireLogin = (nextState, replace, cb) => {
if(!isLoggedIn) {
store.dispatch(getUserInfo(somePayLoad)).then(checkLoginStatus);
}
function checkLoginStatus() {
const {authorization: { user }} = store.getState();
if(!user.typeA) {
replace('/home');
}
cb();
}
}
したがって、replace()
if 条件が失敗した場合は、通常の呼び出されたルートに移動し、上記のコードのようにフェッチされたユーザーの詳細にアクセスし、ユーザーが終了したいときにいつでも作成したディスパッチャーを!user.typeA
簡単に呼び出すことができます。logout
しかし、条件が満たされると、/home
ページに置き換えられ、ホームページに正常に開きます (リダイレクト)。authorization
しかし、ユーザーの詳細を保存することはできなくなりました。logout
ディスパッチャーを呼び出すこともできません。
ノート:
if(!user.typeA) {
const path = '/home';
const query = {error:'anything'};
const state = store.getState();
replace({ path, query, state });
}
それ以外の
if(!user.typeA) {
replace('/home')
}
も機能しません。
これを達成する方法は?