繁体   English   中英

React.js vs Javascript 变量声明

[英]React.js vs Javascript variable declaration

我在这里有一个使用 React.js 的代码,此代码在控制台中返回 undefined ..

getTicket = async() =>{
    var ticketData;
    this.state.client.get('ticket').then(
        await function(data){
            ticketData = data['ticket'].toString();
            console.log(data['ticket'])
        
        }
    )
    await this.setState({ ticketInformation: ticketData })
}

而这个是 javascript,此代码返回 ticketData 的值..

  var ticketData;
  client.get('ticket').then(
    function(data) {
      ticketData = data['ticket'];
      console.log("TICKET:: " + JSON.stringify(ticketData.id));
    }
  );

我的问题是,两者有什么区别? 如您所见,在第一个代码上,我使用的是 async/await,据我所知,它不应该返回 undefined。不知何故,第二个代码没有 async/await,但完全为全局变量赋值。

我猜那是因为当你第一次调用 getTicket function 时,this.state.client 是未定义的。 您应该首先给它一个默认值,但据我所知,将 function 设置为“状态”并不好。 You should make the convert value function as a call back outside, not in "state" cuz React re-make the function again whenever the state value change and it wastes memory.

尝试如下,我希望你有一个目标。

   await this.state.client.get('ticket').then(
        function(data){
            ticketData = data['ticket'].toString();
            console.log(data['ticket'])
        
        }
    )

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM