亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

關于把 bind 放在構造函數中的問題。

我看到老師會寫bind方法修改當前this的指向。


但是如果這個函數直接使用箭頭函數定義就不需要bind了呀

??handlerBtnClick?=?()=>{
??????this.setState({
????????????list:[...this.state.list,this.state.inputValue],
????????????inputValue:''
??????})??
??}??
??
??handlerInputChange?=?(e)=>{
??????this.setState({
????????????inputValue:?e.target.value
??????})??
?}??
?
?handlerLiClick?=?(k)=>{????
?????let?list?=?[...this.state.list];
?????list.splice(k,1);????
?????this.setState({list});??
?}


還有一個問題,不用bind如何傳遞參數:

?handlerLiClick={this.handlerLiClick.bind(null,k)}

這里放的是函數名,而不是函數調用,想知道如何放參數,如果不用bind的情況。

正在回答

4 回答

  1. ?箭頭函數這種寫法屬于實驗性的寫法,也就是說,日后更新后可能就不支持通過箭頭函數改變this(具體可在官方文檔 - 事件處理 那一章節查看)

2. 兩種傳遞參數的方法:

```javascript

<button?onClick={(e)?=>?this.deleteRow(id,?e)}>Delete?Row</button>
<button?onClick={this.deleteRow.bind(this,?id)}>Delete?Row</button>

```

0 回復 有任何疑惑可以回復我~

handlerLiClick={(k)=>this.handlerLiClick}

0 回復 有任何疑惑可以回復我~

handlerLiClick={(k)=>this.handlerLiClick.bind}

0 回復 有任何疑惑可以回復我~

改成箭頭函數后,刪除的task不是點擊的task而是key=0的第一項。

0 回復 有任何疑惑可以回復我~
#1

_phpstudy 提問者

沒有,并不會。我寫代碼測試之后提的問題。
2018-08-28 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

關于把 bind 放在構造函數中的問題。

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號