簡體   English   中英

如何從Ecmascript 6(ES6)上的類對象中的事件回調函數訪問對象成員

[英]How to access an object member from event callback function in a class object on Ecmascript 6 (ES6)

我有這個:

class Register {

    render(){
        return (<div onchange={this.aFunction}></div>)
    };

    aFunction(event){
        this.printSomething();  //Uncaught TypeError: undefined is not a function
    }

    printSomething(){
        console.log('Horray');
    }

}

如何在功能中調用printSomething? ES6確實讓我感到困惑。

謝謝。

您會注意到,在React中使用ES6類時, 已經發生了很多變化

同樣,ES6類不會 ES5 React.createClass那樣自動React.createClass

因此,您需要正確綁定函數的this


你有兩個選擇

1.使用箭頭功能

render(){
    return <div onchange={event => this.aFunction(event)}></div>;
}

2.使用綁定

render(){
    return <div onchange={this.aFunction.bind(this)}></div>;
}

我假設您正在為此使用React.js。 如果是,則需要更新

class Register

class Register extends React.Component

我認為問題是, thisrender勢必對股利。

var foo = new Register;
var div = foo.render();
div.onchange(); // this is div, not foo
foo.aFunction(); // doesn't throw TypeError.

暫無
暫無

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

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