1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > [OHIF-Viewers]医疗数字阅片-医学影像-REACT向事件处理程序传递参数-.bind-传递函数给组件...

[OHIF-Viewers]医疗数字阅片-医学影像-REACT向事件处理程序传递参数-.bind-传递函数给组件...

时间:2019-05-28 02:47:35

相关推荐

[OHIF-Viewers]医疗数字阅片-医学影像-REACT向事件处理程序传递参数-.bind-传递函数给组件...

[OHIF-Viewers]医疗数字阅片-医学影像-REACT向事件处理程序传递参数-.bind-传递函数给组件

在 Render 中的绑定

class Foo extends Component {handleClick() {console.log('Click happened');}render() {return <button onClick={this.handleClick.bind(this)}>Click Me</button>;}}

注意:

在 render 方法中使用Function.prototype.bind会在每次组件渲染时创建一个新的函数,可能会影响性能(参见下文)。

在 Render 中使用箭头函数

class Foo extends Component {handleClick() {console.log('Click happened');}render() {return <button onClick={() => this.handleClick()}>Click Me</button>;}}

注意:

在 render 方法中使用箭头函数也会在每次组件渲染时创建一个新的函数,这会破坏基于恒等比较的性能优化。

可以在 render 方法中使用箭头函数吗?

一般来说是可以的,并且使用箭头函数是向回调函数传递参数的最简单的办法。

但是如果遇到了性能问题,一定要进行优化!

向事件处理程序传递参数

在循环中,通常我们会为事件处理函数传递额外的参数。例如,若id是你要删除那一行的 ID,以下两种方式都可以向事件处理函数传递参数:

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

上述两种方式是等价的,分别通过箭头函数和Function.prototype.bind来实现。

在这两种情况下,React 的事件对象e会被作为第二个参数传递。如果通过箭头函数的方式,事件对象必须显式的进行传递,而通过bind的方式,事件对象以及更多的参数将会被隐式的进行传递。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。