子组件一直在重新渲染,因为我正在从基于类的组件(父组件(传递handlder函数。如何防止重新绘制子组件?
这是我的代码:
render() {
const eventClickHandler = (activity) => {
this.props.dispatchGetActivityDetails(activity.id);
}
return (
<ChildComponentHere eventClickHandler={eventClickHandler} />
);
}
子组件已通过以下方式导出:
export default memo(WorkspaceActivityList)
将函数定义为类方法,在呈现之外
eventClickHandler = (activity) => {
this.props.dispatchGetActivityDetails(activity.id)
}
render() {
return (
<ChildComponentHere eventClickHandler={this.eventClickHandler} />
);
}
子组件保持重新渲染的原因是,在父组件的每个渲染上都创建了一个新的eventClickHandler
函数,该函数与在上一次渲染中创建的函数不具有引用性。