[英]react router v3 onEnter wait for promise
在發布此問題之前,我到處看,但是找不到任何東西!!!
因此,我希望我的react應用程序中的某些路由等待Promise解決,以便我可以檢查用戶角色,如果該用戶可以訪問特定路由。
我嘗試了下面的代碼,但是沒有用!
checkRoles = (nextState, replace) => {
if(token && !loggedUser) {
this.getUserData()
.then(() => {
alert('you are logged in.');
replace('/dashboard');
})
.catch(() => {
alert('session expired.');
replace('/login');
});
} else {
alert('Please login first.');
replace('frontend/login');
}
}
替換完全忽略中catch
和then
的功能,我也試着傳遞一個第三個參數callback()
這是行不通的!
您必須使用onEnter函數的第三個參數:
checkRoles = (nextState, replace, cb) => {
if (token && !loggedUser) {
this.getUserData()
.then(() => {
alert('you are logged in.');
replace('/dashboard');
cb();
})
.catch(() => {
alert('session expired.');
replace('/login');
cb();
});
} else {
alert('Please login first.');
replace('frontend/login');
cb();
}
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.