Javascript 如何使用承诺返回更新react.js组件?
我开发了一个返回值的简单承诺。此值必须更新react组件的状态。但是它不起作用,因为组件函数setState在promise.then()范围中不可用 使用提供词法范围的Javascript 如何使用承诺返回更新react.js组件?,javascript,reactjs,Javascript,Reactjs,我开发了一个返回值的简单承诺。此值必须更新react组件的状态。但是它不起作用,因为组件函数setState在promise.then()范围中不可用 使用提供词法范围的 login_account(this.state.email, this.state.password).then((session_token) => { return this.setState({token: session_token}); }); 使用提供词法范围的 l
login_account(this.state.email, this.state.password).then((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语法-use,那么他们不会更改范围 如果您不能使用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函数更改上下文-bind
()。可能看起来像这样:
login_account(this.state.email, this.state.password)
.then(callbackFunction.bind(this, session_token));
几乎没有办法。如果您能够使用ES6语法-use,那么他们不会更改范围 如果您不能使用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函数更改上下文-bind
()。可能看起来像这样:
login_account(this.state.email, this.state.password)
.then(callbackFunction.bind(this, session_token));