You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用react-ripples封装的MyButton1组件绑定onClick不生效如何解决?

解决方案

问题根因

你在父组件给MyButton1绑定的onClick只是作为普通属性传入自定义组件,你没有将该事件绑定到MyButton1内部的可点击元素上,因此点击时无法触发回调。

修复方法

修改MyButton1组件代码,将接收的onClick属性传递给内部的Button组件即可:

export const MyButton1 = (props) => {
    return (
        <Ripples color="rgba(255,255,255,0.5)" during={650}>
            <Button className='my-button-1' onClick={props.onClick}>
                {props.children}
            </Button>
        </Ripples>
    );
}

优化建议

如果后续需要给MyButton1传入更多原生按钮属性(比如disabled、type等),可以直接透传所有props,不需要逐个单独声明:

export const MyButton1 = (props) => {
    return (
        <Ripples color="rgba(255,255,255,0.5)" during={650}>
            <Button className='my-button-1' {...props}>
                {props.children}
            </Button>
        </Ripples>
    );
}

如果点击后出现页面意外刷新的情况,是因为按钮默认触发了表单提交行为,可以给Button添加type="button"属性,或者在register回调中调用e.preventDefault()阻止默认行为。

内容的提问来源于stack exchange,提问作者Thanh Hải

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 19:09:04