0

API から 401 が返されたときにコンポーネントにエラー メッセージを表示したい。何にもバインドされていない状態を使用しようとしており、ES6 を使用しています。私は得ています

Cannot read property 'setState' of undefined

これはログイン機能です:

login(e) {
    e.preventDefault();
    AuthService.login(this.state.username, this.state.password)
    .catch(function (err) {
        console.log(err);
        this.setState({loginFailed: true});
    });
}
4

2 に答える 2

1

promise の解決内では、外側のオブジェクトから this のスコープを失い、promise のコンテキストにいます。

ES6 を使用しているため、太い矢印を使用して外側の this を関数の内側にバインドできます。

login(e) {
    e.preventDefault();
    AuthService.login(this.state.username, this.state.password)
    .catch((err) => {
        console.log(err);
        this.setState({loginFailed: true});
    });
}
于 2015-09-11T16:08:40.313 に答える