如何解决如何避免匿名函数的反应
const Parent = () => {
handleClick = (id) => {
console.log(id)
}
return <div>
users.map((user,index) =>
<child key={index} onClick={(user.id)=>handleClick(user.id)} />)
</div>
}
孩子正在使用React.memo,因此除非更改其道具,否则它不会重新渲染。我不希望在父级渲染时重新渲染子级,但在这种情况下,它将重新渲染,因为我使用的是匿名函数。我可以将 handleClick 放在 useCallback 内,但是如何避免在此处使用匿名功能。我必须在这里使用匿名函数,因为我在这里需要一些参数。
解决方法
您可以尝试使用 bind
。
const Parent = () => {
handleClick = (id) => {
console.log(id)
}
return <div>
users.map((user,index) =>
<Child key={index} onClick={handleClick.bind(this,user.id)} />)
</div>
}
这是 React 文档的相关部分:Passing Arguments to Event Handlers
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。