// vscode shift + ctrl + v 預覽函數
handleClick(e) { // e - 事件對象 e.preventDefault(); // doSomething ... }
this.handleClick = this.handleClick.bind(this);
<button onClick={this.hanleClick} />
// 同上
<button onClick={this.hanleClick.bind(this)} />
handleClick(param1, param2, e) { e.preventDefault(); // do something ... }
注意此時不管多少個參數, e 必定放在最後this
<button onClick={this.hanleClick.bind(this, 'x', 'xx')} />
handleClick = (e) => { e.preventDefault(); // do something ... }
<button onClick={this.hanleClick} />
比起 es 5 中的無參數函數的綁定調用, es 6 不須要使用 bind 函數;code
handleClick = (param1, e) => { e.preventDefault(); // do something ... }
<button onClick={this.hanleClick.bind(this, 'x')} />
有參數時,在綁定時依然要使用 bind;
而且參數必定要傳,否則仍然存在 this 指向錯誤問題;對象
handleClick = (param1, e) => { // do something ... }
<button onClick={() => this.handleClick('c')} /> // 若是須要對 event 對象進行處理的話,須要寫成下面的格式 <button onClick={(e) => this.handleClick('c', e)} />