ReactJS-在运行函数之前等待cookie加载?

时间:2020-04-30 12:57:50

标签: javascript reactjs redirect routes http-redirect

我有一个React App,它可以立即(在加载时)检查是否有cookie,然后如果有cookie,则执行功能等。

但是该应用将通过重定向加载

enter image description here

这是到目前为止的代码:

export class Landing extends Component {
    constructor(props) {
        super(props);
        this.state = {};
    }

    componentDidMount() {
        function onLoad(props) {

            const cookieValue = Cookies.get("cookieJWT");

            if(cookieValue){
               console.log(cookieJWT);
            } else { console.log('No cookie found!') }
        }

        onLoad();
   }
}

问题是,onLoad()函数运行得如此之快,以至于无法准备好来自重定向的cookie,因此返回的结果就不存在!

我尝试使用componentDidMount(),但认为我需要使用async和await,但是我该如何做,以便它等待cookie加载/重定向正确完成?

预先感谢:)

1 个答案:

答案 0 :(得分:0)

是的,这是您需要做的,它是名称回调。

顺便说一句,我认为使用cookie的localStorage会更好。

 // set
 try {
  yield localStorage.setItem("jwt","some value");
  } catch (error) {
   console.log(error);
  }    

//get
 try {
   const jwt= yield localStorage.getItem(jwt); //some value
   const token= yield localStorage.getItem(token);//null
  } catch (error) {
   console.log(error);
  }