我有一个React组件内的元素列表,我希望它们可以被点击。当点击时,我会调用一些外部函数并传递项目ID作为参数:
render () {
return (
<ul>
{this.props.items.map(item => (
<li key={item.id} onClick={() => {doSomething(item.id)}></li>
))}
</ul>
)
}
这段代码可以工作,但它有一个很大的性能缺陷:每次调用render
都会创建许多新的匿名函数。
我如何将doSomething
函数作为引用传递,在仍然能够向其提供item.id
的情况下?
item.id
在列表中,所以它是会变化的。 - Girafarender
本身被频繁调用,但是由于它在map
中,匿名函数被更频繁地调用。我认为在小数据集上不会有任何问题,但是我正在寻找大数据集的解决方案。 - Girafa