У меня есть помощник с кучей баскетбольных команд. Поэтому я хотел бы показать что-то свое для каждой команды, когда над одной из них зависает. Кроме того, я использую Reactjs, поэтому, если бы у меня была переменная, которую я мог бы передать другому компоненту, это было бы здорово.
101
Ответы:
Компоненты React предоставляют все стандартные события мыши Javascript в своем интерфейсе верхнего уровня. Конечно, вы все еще можете использовать
:hover
в своем CSS, и этого может быть достаточно для некоторых из ваших потребностей, но для более продвинутого поведения, запускаемого при наведении курсора, вам необходимо использовать Javascript. Итак, чтобы управлять взаимодействиями при наведении курсора, вы захотите использоватьonMouseEnter
иonMouseLeave
. Затем вы прикрепляете их к обработчикам в своем компоненте следующим образом:Затем вы будете использовать некоторую комбинацию состояния / свойств для передачи измененного состояния или свойств своим дочерним компонентам React.
источник
onMouseEnter
onMouseLeave
это события DOM. Они не будут работать по обычаюReactComponent
, вам нужно будет передать события как опору и привязать эти события к элементу DOM в этомReactComponent
, например<div onMouseOver={ () => this.props.onMouseOver }>
ReactJs определяет следующие синтетические события для событий мыши:
Как видите, события зависания нет, потому что браузеры изначально не определяют событие наведения.
Вы захотите добавить обработчики для onMouseEnter и onMouseLeave для поведения при наведении курсора.
ReactJS Docs - События
источник
Я знаю , что общепринятый ответ велик , но для тех , кто ищет парения , как чувствую , вы можете использовать
setTimeout
наmouseover
и сохранить ручку на карте (скажем список идентификаторов ДАВАЙТЕ к SetTimeout Handle). Наmouseover
очистить ручку от SetTimeout и удалить его с картыИ реализуем карту следующим образом:
А карта такая,
Я предпочитаю,
onMouseOver
иonMouseOut
потому что это также применимо ко всем детям вHTMLElement
. Если это не требуется, вы можете использоватьonMouseEnter
иonMouseLeave
соответственно.источник
Для создания эффекта наведения вы можете просто попробовать этот код
Или, если вы хотите справиться с этой ситуацией с помощью хука useState (), вы можете попробовать этот фрагмент кода
Оба приведенных выше кода будут работать для эффекта наведения, но первую процедуру легче написать и понять.
источник