React 无状态组件中的事件处理程序

新手上路,请多包涵

试图找出在 React 无状态组件中创建事件处理程序的最佳方法。我可以这样做:

 const myComponent = (props) => {
    const myHandler = (e) => props.dispatch(something());
    return (
        <button onClick={myHandler}>Click Me</button>
    );
}

这里的缺点是每次渲染这个组件时,都会创建一个新的“myHandler”函数。有没有更好的方法在仍然可以访问组件属性的无状态组件中创建事件处理程序?

原文由 aStewartDesign 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 214
1 个回答

将处理程序应用于功能组件中的元素通常应该如下所示:

 const f = props => <button onClick={props.onClick}></button>

如果您需要做任何更复杂的事情,则表明 a) 组件不应该是无状态的(使用类或挂钩),或者 b) 您应该在外部有状态容器组件中创建处理程序。

顺便说一句,稍微削弱我的第一点,除非组件位于应用程序的特别密集重新呈现的部分,否则无需担心在 render() 中创建箭头函数。

原文由 Jed Richards 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题