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

使用@floating-ui/react v0.25.4时useFloating缺失floatingStyles求助

解决@floating-ui/react v0.25.4中useFloating无floatingStyles的问题

这是v0.25.x版本的API变更导致的——官方移除了floatingStyles字段,将其合并到floatingProps.style中,但类型定义没同步更新,属于库的文档/类型滞后问题,不是你代码的问题。以下是三种解决办法:

  • 直接替换API(推荐)
    把原来读取floatingStyles的逻辑换成读取floatingProps.style,或者直接展开floatingProps到浮动元素上:

    // 旧代码
    const { floatingStyles } = useFloating();
    <div style={floatingStyles}>浮动内容</div>
    
    // 新代码(方式1:直接展开props)
    const { floatingProps } = useFloating();
    <div {...floatingProps}>浮动内容</div>
    
    // 新代码(方式2:单独取style)
    const { floatingProps } = useFloating();
    <div style={floatingProps.style}>浮动内容</div>
    

    floatingProps里包含了定位所需的style、ref等所有属性,直接展开是最规范的用法。

  • 回退到旧版本
    如果暂时不想修改代码,可回退到v0.24.x版本,这个版本仍保留floatingStyles:

    # npm
    npm install @floating-ui/react@^0.24.8
    
    # yarn
    yarn add @floating-ui/react@^0.24.8
    
  • 检查配置完整性
    确保useFloating的配置至少包含placement参数,若需要自动更新定位,还要添加autoUpdate中间件(虽然这不是导致floatingStyles消失的直接原因,但配置不全可能引发其他异常):

    import { useFloating, autoUpdate } from '@floating-ui/react';
    
    const { floatingProps } = useFloating({
      placement: 'bottom', // 必填的定位方向
      middleware: [autoUpdate()], // 可选,用于窗口大小变化、滚动时自动更新位置
    });
    

内容的提问来源于stack exchange,提问作者howard wolowitz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 08:01:22