自定义组件上的 OverlayTrigger 不起作用

2024-04-07

我试图在自定义组件(按钮)悬停时显示弹出窗口:

class MyComponent extends React.PureComponent<MyComponentProperties>  {
    public render(): JSX.Element {
        const overlay: JSX.Element = (
            <Popover id={this.uuid}>
                <Popover.Content>
                    Hello world!
                </Popover.Content>
            </Popover>
        );

        return <OverlayTrigger trigger="hover" placement="auto" delay={{show : 700, hide : 0}} overlay={overlay}>
            <MyFancyButton ... />
        </OverlayTrigger >
    }
}
class MyFancyButton extends React.PureComponent<MyFancyButtonProperties> {
    public render(): JSX.Element {
        return <button ...>Hover me!</button>
    }
}

弹出窗口不显示。但是,如果我更改返回值,它会起作用render的函数MyComponent to:

return <OverlayTrigger trigger="hover" placement="auto" delay={{show : 700, hide : 0}} overlay={overlay}>
    <button>Hover me!</button>
</OverlayTrigger >

我检查了https://react-bootstrap.github.io/components/overlays/#overlay-trigger https://react-bootstrap.github.io/components/overlays/#overlay-trigger它说:

注意触发组件必须能够接受裁判因为将尝试添加一个。您可以将forwardRef() 用于函数组件。

我不知道该怎么做。我尝试添加一个ref财产在MyFancyButtonProperties并将其转发至button,但它不起作用:

class MyFancyButton extends React.PureComponent<MyFancyButtonProperties> {
    public render(): JSX.Element {
        return <button ref={this.props.ref} ...>Hover me!</button>
    }
}

我的版本:

  • 反应16.8.6
  • React 引导程序 1.0.0-beta.14

我终于在这里找到了解决方案:https://github.com/react-bootstrap/react-bootstrap/issues/2208#issuecomment-301737531 https://github.com/react-bootstrap/react-bootstrap/issues/2208#issuecomment-301737531

我用一个包装了该组件,它应该有一个工具提示<span> in the render的函数MyComponent to

return <OverlayTrigger trigger="hover" placement="auto" delay={{show : 700, hide : 0}} overlay={overlay}>
    <span><MyFancyButton ... /></span>
</OverlayTrigger >

现在可以了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

自定义组件上的 OverlayTrigger 不起作用 的相关文章

随机推荐

  • PHP:从递归函数返回一个数组

    我有一个像这样的数组 SimpleXMLElement Object BrowseNodes gt SimpleXMLElement Object BrowseNode gt SimpleXMLElement Object BrowseNo
  • 使用fread读取带有双引号和不正确转义字符的数据

    我尝试使用以下命令加载大型数据文件 约 2000 万行 fread 来自数据表包裹 然而 有些行却造成了很大的麻烦 最小的例子 text csv contains id text 1 Oops The Georgia fread text
  • jQuery UI 仅在特殊区域删除元素

    我对 jQuery UI 的拖放有疑问 我创建动态的新元素 并将其放置在屏幕上的四个区域之一 这些元素是可拖动的 我可以将它们放置在整个屏幕上 但我希望这些元素只能放置在三个区域之一 我在这里创建了一个完整的工作示例 http jsbin
  • 如何在 Java 中格式化数字?

    如何在 Java 中格式化数字 什么是 最佳实践 在格式化之前我需要对数字进行四舍五入吗 32 302342342342343 gt 32 30 7323 gt 0 73 etc From 这个线程 http bytes com forum
  • RHEL w/Tkinter & Python3 - 更改活动名称“Tk”

    我正在尝试为 Tkinter 应用程序设置 Activity 不确定正确的术语 请参阅屏幕截图 名称 我不是 Linux 专家 新手 甚至不是初学者 但是关于对话框的系统将我的测试机器列为 Fedora 30 窗口管理器是 Gnome 代码
  • C#中如何检查组合框中的项目是否被选中?

    我有一个组合框 必须在其中显示数据库中的日期 用户必须从组合框中选择一个日期才能进一步进行 但我不知道如何让用户意识到首先从组合框中选择该项目才能进一步进行 如果用户没有从组合中选择日期 应该遵循什么流程才能收到消息 if string I
  • WPF ToggleButton 不正确的呈现行为

    这是怎么回事 如何解决 按我的切换按钮 现在看起来就像立即按下 选中 同时 MyToggleButton Checked 处理程序禁用 MyToggleButton 现在按非切换按钮 启用 我们看到什么 MyToggleButton 看起来
  • 对于具有默认分配器的标准容器,std::container::size_type 是否保证为 size_t?

    Like std string
  • TFS2018 是否仍支持 ISubscriber?

    截至 TFS 2017 Plugins 文件夹中有一个名为 Microsoft TeamFoundation Framework Server 的库 它包含 ISubscriber 接口 可以覆盖该接口以附加挂钩并添加事件行为 例如构建完成
  • Laravel 用户登录时如何设置会话变量

    发票应用程序开发正在使用 Laravel 进行 我为每个用户存储日期和金额格式settings table 当用户登录自己的帐户时如何设置Session多变的 请提出任何建议 我正在使用 Laravel 5 3 当然 文档告诉我们如何存储会
  • 未使用参数 ngrams

    我使用 Quanteda 进行文本分析 我使用这个命令 corp df2 lt tokens df text remove punct TRUE remove numbers TRUE remove symbols TRUE gt toke
  • XCode 4.4 iOS 5.1 模拟器问题

    我将我的 mac book 更新为 mountain lion 并将 Xcode 更新为 4 4 版本 在之前的版本中 我关闭 iOS 模拟器没有任何问题 并且 Xcode 自动停止构建过程 但现在如果我关闭 iOS 模拟器 Xcode 中
  • Scala:SeqT monad 转换器?

    如果我们有这样的两个函数 def findUserById id Long Future Option User def findAddressByUser user User Future Option Address 然后我们就可以使用
  • “关闭”某物是什么意思?

    我试图理解闭包 但从字面上看every我能找到的闭包定义使用了相同的神秘而模糊的短语 结束 什么是closure 哦 这是一个函数结束另一个功能 但我找不到 结束 的定义 有人能解释一下 A 事物 关闭 B 事物意味着什么吗 闭包是由代码指
  • 如何获取ECS集群的所有日志

    是否有一些 AWS 命令 get 可以从 ECS 集群的所有服务 任务中获取日志 就像是 aws ecs logs cluster dev or aws ecs describe clusters cluster dev logs 例如 必
  • 每周运行一次 php 脚本

    每个星期一我都需要清空 MYSQL 数据库的几个字段 首先 我考虑使用 cron 作业 但我的 Web 托管提供商 fatcow com 既不支持 SSH 也不支持通过命令行访问共享服务器 我还考虑过检查 date 以查看是否是星期一并执行
  • 从不规则时间序列创建规则 15 分钟时间序列

    我的 csv 文件中有一个不规则的时间序列 包含 DateTime 和 RainfallValue C SampleData csv DateTime RainInches 1 6 2000 11 59 0 1 6 2000 23 59 0
  • 树 /f cmd 修改日期。 Windows Powershell

    我需要创建一个 tree驱动器的文件夹 子文件夹和修改日期的列表 tree f命令效果很好 但我需要添加修改日期 我怎样才能做到这一点 它不会那么漂亮 但你可以使用 Recurse使用 Get ChildItem 选项来查找所有这些 此外
  • 是否可以使用 python-shell 包在 Node JS 中安装 python 包?

    我刚刚知道我们可以使用下面的 npm 包在 Node JS 中运行 Python 脚本 蟒蛇外壳 https www npmjs com package python shell 是否可以使用相同的库安装 python 包 就像是pip i
  • 自定义组件上的 OverlayTrigger 不起作用

    我试图在自定义组件 按钮 悬停时显示弹出窗口 class MyComponent extends React PureComponent