首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在渲染道具中使用react popper

如何在渲染道具中使用react popper
EN

Stack Overflow用户
提问于 2019-03-28 16:41:02
回答 2查看 9.4K关注 0票数 4

我是个初学者,试着理解react-popper。在他们的github上,这是示例代码:

代码语言:javascript
复制
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吗?怎么会这样呢?如果有人能给我一个这段代码的工作示例,那就太好了,我只想看看如何使用这个代码。

EN

回答 2

Stack Overflow用户

发布于 2019-03-29 11:04:42

我猜你的目标是一个类似工具提示的功能。这就是你想要达到的目标吗?

请记住,react popper有一个低级别的API。它是一个位置引擎,而不是工具提示库。通过使用它,您必须实现亲自显示Popper的逻辑。例如,您可以有一个变量shouldShowElement并触发对此的更改。

代码语言:javascript
复制
  ...
  <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,可以使用反应蒂皮反应爆发器-工具提示

票数 4
EN

Stack Overflow用户

发布于 2019-03-28 16:56:10

不要为渲染道具操心太多。在大多数情况下,您不需要修改它们。

只要记住

  • ref呈现道具来自Reference应该附加到引用元素(你的项目是附加在你的波普尔)。
  • ref呈现道具来自Popper应该附加在波普(你的工具提示或其他)。

styleplacement渲染道具代表页面上的地理位置。

在简历中,此示例将呈现一个带有箭头化<div>的按钮,该按钮包含"Popper element"

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55402837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档