簡體   English   中英

反應路由器v3 onEnter等待承諾

[英]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');
          }
      }

替換完全忽略中catchthen的功能,我也試着傳遞一個第三個參數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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM