Как использовать реактивный поппер с рендером
Я новичок, пытаюсь понять 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
? Как так? Было бы здорово, если бы кто-нибудь дал мне рабочий пример этого кода, я бы просто хотел посмотреть, как его использовать.
2 ответа
Я предполагаю, что вы стремитесь к функции всплывающей подсказки. Это то, что вы пытаетесь достичь?
Имейте в виду, что реакция-поппер имеет низкий уровень API. Это позиционный движок, а не библиотека всплывающих подсказок. Используя его, вы должны будете реализовать логику отображения Поппера самостоятельно. Например, вы можете иметь переменную 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, вы можете использовать response-tippy или Reaction-popper -tooltip
Не беспокойтесь слишком сильно о рендере. В большинстве случаев вам не нужно изменять их.
Просто имейте в виду, что
ref
сделать опору изReference
должен быть прикреплен к элементу ссылки (ваш предмет, где прикреплен ваш поппер).ref
сделать опору изPopper
должны быть прикреплены на поппер (ваша подсказка или что-то еще).
style
а также placement
рендер опора для географического положения на странице.
В резюме в этом примере будет отображаться кнопка со стрелкой <div>
который содержит "Popper element"
,