我是个初学者,试着理解react-popper。在他们的github上,这是示例代码:
import { Manager, Reference, Popper } from 'react-popper';
const Example = () => (
<Manager>
<Reference>
{({ ref }) => (
<button type="button" ref={ref}>
Reference element
</button>
)}
</Reference>
<Popper placement="right">
{({ ref, style, placement, arrowProps }) => (
<div ref={ref} style={style} data-placement={placement}>
Popper element
<div ref={arrowProps.ref} style={arrowProps.style} />
</div>
)}
</Popper>
</Manager>
);这就像它应该工作的样子吗?我不确定我是否理解如何使用这段代码,如果我将这个Example组件导入/使用到我自己的父组件中,它会是什么样的;我需要传递refs吗?怎么会这样呢?如果有人能给我一个这段代码的工作示例,那就太好了,我只想看看如何使用这个代码。
发布于 2019-03-29 11:04:42
我猜你的目标是一个类似工具提示的功能。这就是你想要达到的目标吗?
请记住,react popper有一个低级别的API。它是一个位置引擎,而不是工具提示库。通过使用它,您必须实现亲自显示Popper的逻辑。例如,您可以有一个变量shouldShowElement并触发对此的更改。
...
<Manager>
<Reference>
{({ ref }) => (
<button
type="button"
ref={ref}
onMouseEnter={() => {
/* [[SOME CODE TO SET shouldShowElement TO TRUE]] */
}}
onMouseLeave={() => {
/* [[SOME CODE TO SET shouldShowElement TO FALSE]] */
}}
>
Reference element
</button>
)}
</Reference>
{shouldShowElement ? (
<Popper placement="right">
{({ ref, style, placement, arrowProps }) => (
<div ref={ref} style={style} data-placement={placement}>
Popper element
<div ref={arrowProps.ref} style={arrowProps.style} />
</div>
)}
</Popper>
) : null}
</Manager>
...如果您想要更高级别的API,可以使用反应蒂皮或反应爆发器-工具提示。
发布于 2019-03-28 16:56:10
不要为渲染道具操心太多。在大多数情况下,您不需要修改它们。
只要记住
ref呈现道具来自Reference应该附加到引用元素(你的项目是附加在你的波普尔)。ref呈现道具来自Popper应该附加在波普(你的工具提示或其他)。style和placement渲染道具代表页面上的地理位置。
在简历中,此示例将呈现一个带有箭头化<div>的按钮,该按钮包含"Popper element"。
https://stackoverflow.com/questions/55402837
复制相似问题