Popover
一个适用于 ReactLynx 的无样式气泡浮层组件,提供定位和锚点追踪基础能力。
基础用法
额外锚点
如果您想添加额外的锚点,可以使用 PopoverAnchor 组件。
交叉轴偏移调整
在 PopoverPositioner 上使用 crossAxisOffset 来设置浮动元素的交叉轴偏移量。
结构
API
PopoverRoot
The root component of the Popover, containing all of its child components.
childreniOSAndroidHarmony
子元素
classNameiOSAndroidHarmony
类名
debugLogiOSAndroidHarmony
开启 Popover 及其子组件的调试日志。
defaultShowiOSAndroidHarmony
确定对话框是否默认显示。使用此属性意味着对话框是非受控的。
forceMountiOSAndroidHarmony
即使弹窗未显示,也会挂载弹窗并渲染内容。此时内部状态处于 closed
onCloseiOSAndroidHarmony
当 Popover 关闭时触发
onOpeniOSAndroidHarmony
当 Popover 显示时触发
onVisibleChangeiOSAndroidHarmony
Popover 显示状态改变时触发的回调,仅在受控模式下被调用。
showiOSAndroidHarmony
确定是否应显示对话框。使用此属性意味着对话框是受控的。请勿与 'defaultShow' 属性一起使用。
styleiOSAndroidHarmony
样式
PopoverTrigger
The element that triggers the Popover to show.
childreniOSAndroidHarmony
子元素
classNameiOSAndroidHarmony
类名
disabled
禁用此触发器
onClickiOSAndroidHarmony
组件被点击时触发的回调函数
styleiOSAndroidHarmony
样式
transitioniOSAndroidHarmony
如果设置为 true,则 className 会包含 'ui-entering', 'ui-leaving', 'ui-animating' 等动画相关类名
PopoverPositioner
Helps position the Content and Arrow correctly.
autoAdjustiOSAndroidHarmony
Popover 的自动调整策略。默认为 'size',会根据 Popover 大小自动调整 maxHeight/maxWidth;'shift' 会根据 Popover 的宽度/高度自动调整位置。
classNameiOSAndroidHarmony
类名
crossAxisOffsetiOSAndroidHarmony
额外的 crossAxis 偏移量。如果设置了此属性,Popover 会在 crossAxis 方向上额外偏移指定的量。
placementiOSAndroidHarmony
Popover 的位置
placementOffsetiOSAndroidHarmony
Popover 位置的偏移量
popoverPositionerPropsiOSAndroidHarmony
popoverPositioner 支持将原始 view 或 overlay 属性直接展开到这个属性中。
styleiOSAndroidHarmony
样式
transitioniOSAndroidHarmony
如果设置为 true,则 className 会包含 'ui-entering', 'ui-leaving', 'ui-animating' 等动画相关类名
childreniOSAndroidHarmony
子元素
基于状态的样式与渲染
该组件将每一项内部状态通过两条等价通道同时对外暴露,下表逐行给出两者的对应关系:
- CSS className:根节点上会动态加上
ui-<state>形式的类名,可直接用.ui-<state> { ... }选择器定制样式; - Render-prop 字段:当
children传入函数时,同一个状态会以children({ <state>: boolean, ... })的形式作为参数传入,便于在运行时做条件渲染。
ui-open
弹层处于打开状态。
当 status.open 为 true 时生效,可用于 `.ui-open { ... }`。
ui-closed
弹层处于关闭状态。如果开启了 forceMount,初始状态会是 ui-closed。
当 status.closed 为 true 时生效,可用于 `.ui-closed { ... }`。
ui-leaving
弹层正在执行离开动画。仅在 transition:true 时生效。
当 status.leaving 为 true 时生效,可用于 `.ui-leaving { ... }`。
ui-entering
弹层正在执行进入动画。仅在 transition:true 时生效。
当 status.entering 为 true 时生效,可用于 `.ui-entering { ... }`。
ui-animating
弹层正在执行动画。仅在 transition:true 时生效。
当 status.animating 为 true 时生效,可用于 `.ui-animating { ... }`。
PopoverContent
The content of the Popover.
childreniOSAndroidHarmony
子元素
classNameiOSAndroidHarmony
类名
popoverContentPropsiOSAndroidHarmony
PopoverContent 支持将原始 view 属性直接展开到这个属性中。
styleiOSAndroidHarmony
样式
transitioniOSAndroidHarmony
如果设置为 true,则 className 会包含 'ui-entering', 'ui-leaving', 'ui-animating' 等动画相关类名
PopoverArrow
The arrow of the Popover.
childreniOSAndroidHarmony
子元素。仅当你不想使用默认箭头时才使用它。注意,当设置此属性时,size 和 color 等属性将被忽略,默认的 transform 也会不同。
classNameiOSAndroidHarmony
类名
coloriOSAndroidHarmony
箭头的颜色。默认为 'black'
offsetiOSAndroidHarmony
箭头的偏移量。当 PopoverContent 有圆角时,应将其设置为圆角的半径。否则,箭头可能会放置在圆角旁边,导致两者之间出现间隙。
sizeiOSAndroidHarmony
箭头尺寸。支持
number(宽高一致)或 { width, height }(宽高不一致)。使用自定义子节点时,需要确保 size 与子节点的视觉尺寸一致。styleiOSAndroidHarmony
样式
transitioniOSAndroidHarmony
如果设置为 true,则 className 会包含 'ui-entering', 'ui-leaving', 'ui-animating' 等动画相关类名