簡體   English   中英

如何使用promise返回更新react.js組件?

[英]How do I update a react.js component with a promise return ?

我開發了一個簡單的承諾,可以返回一個值。 該值必須更新react組件的狀態。 但這不起作用,因為組件函數setState在promise.then()范圍內不可用。

login_account(this.state.email, this.state.password).then(function (session_token) {
                return this.setState({token: session_token});
            });

使用提供詞法作用域的箭頭功能

login_account(this.state.email, this.state.password).then((session_token) => {
            return this.setState({token: session_token});
        });

有幾種方法。 如果您能夠使用ES6語法-使用箭頭功能 ,它們不會改變范圍。

如果您不能使用ES6語法,則只需在上面創建this contex的轉儲即可。 像這樣:

var self = this;    
login_account(this.state.email, this.state.password).then(function (session_token) {
       return self.setState({token: session_token});
});

另一種方法是使用回調函數並使用本機JavaScript函數binddoc )更改上下文。 可能看起來像這樣:

login_account(this.state.email, this.state.password)
   .then(callbackFunction.bind(this, session_token));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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