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

如何在react-pdf-viewer中实现自定义按钮并保留点击与提示功能

问题根因

你自定义按钮失效的核心原因是Download等react-pdf-viewer内置的插槽组件,会通过子渲染函数传递内置的点击事件、Tooltip配置等属性,你当前的写法忽略了这部分参数,没有把属性绑定到自定义按钮上,所以触发不了对应功能,也没有hover提示。

解决方案

步骤1:修改Download插槽的调用逻辑,接收内置属性并透传给自定义按钮

找到App组件中Download标签的部分,修改为如下代码:

<Download>
    {/* 接收Download组件传递的所有内置属性(包含onClick、tooltip配置等) */}
    {(props) => (
        <DownloadButton {...props} />
    )}
</Download>

步骤2:修改DownloadButton组件,接收透传属性并绑定到按钮元素

修改你的自定义按钮代码:

export const DownloadButton = (props) => (
    // 将所有透传属性绑定到原生button上,自动继承点击事件、tooltip等能力
    <button {...props} className="downloadButton" aria-label="Download">
      <img src={process.env.PUBLIC_URL + '/icons/download.svg'} className="btButton" alt="Download" />
    </button>
);

其他按钮复用方案

打印、缩放等其他需要自定义的按钮都可以用相同逻辑处理:接收对应插槽组件传递的render props参数,全部透传给你的自定义按钮元素即可。


内容的提问来源于stack exchange,提问作者Dorian Fabre

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 10:45:04