_phpstudy
2018-08-27 21:56
我看到老师会写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的情况。
箭头函数这种写法属于实验性的写法,也就是说,日后更新后可能就不支持通过箭头函数改变this(具体可在官方文档 - 事件处理 那一章节查看)
2. 两种传递参数的方法:
```javascript
<button onClick={(e) => this.deleteRow(id, e)}>Delete Row</button> <button onClick={this.deleteRow.bind(this, id)}>Delete Row</button>
```
handlerLiClick={(k)=>
this
.handlerLiClick
}
handlerLiClick={(k)=>
this
.handlerLiClick.bind
}
改成箭头函数后,删除的task不是点击的task而是key=0的第一项。
React16.4 快速上手
40002 学习 · 134 问题
相似问题