Tenho um sidenav com vários times de basquete. Portanto, gostaria de mostrar algo diferente para cada equipe quando um deles está sendo pairado. Além disso, estou usando Reactjs, então se eu pudesse ter uma variável que pudesse passar para outro componente, seria incrível.
99
Respostas:
Os componentes React expõem todos os eventos de mouse Javascript padrão em sua interface de nível superior. Claro, você ainda pode usar
:hover
em seu CSS, e isso pode ser adequado para algumas de suas necessidades, mas para os comportamentos mais avançados acionados por um passar do mouse você precisará usar o Javascript. Portanto, para gerenciar as interações de foco, você vai querer usaronMouseEnter
eonMouseLeave
. Em seguida, você os anexa aos manipuladores em seu componente da seguinte forma:Em seguida, você usará alguma combinação de estado / props para passar o estado alterado ou as propriedades aos componentes do React filho.
fonte
onMouseEnter
onMouseLeave
são eventos DOM. Eles não funcionarão em um personalizadoReactComponent
, você precisará transmitir os eventos como um suporte e vincular esses eventos a um elemento DOMReactComponent
, como<div onMouseOver={ () => this.props.onMouseOver }>
ReactJs define os seguintes eventos sintéticos para eventos de mouse:
Como você pode ver, não há evento de foco, porque os navegadores não definem um evento de foco nativamente.
Você desejará adicionar manipuladores para onMouseEnter e onMouseLeave para comportamento de foco.
ReactJS Docs - Eventos
fonte
Eu sei a resposta aceita é grande, mas para quem está à procura de um hover como a sensação que você pode usar
setTimeout
emmouseover
e salvar o punho em um mapa (de, digamos lista ids deixou-nos para setTimeout Handle). Emmouseover
limpar o identificador de setTimeout e excluí-lo do mapaE implemente o mapa da seguinte maneira:
E o mapa é assim,
Eu prefiro
onMouseOver
eonMouseOut
porque também se aplica a todas as crianças doHTMLElement
. Se isso não for necessário, você pode usaronMouseEnter
eonMouseLeave
respectivamente.fonte
Para ter efeito de foco, você pode simplesmente tentar este código
Ou se você quiser lidar com essa situação usando o gancho useState (), você pode tentar este trecho de código
Ambos os códigos acima funcionarão para efeito de foco, mas o primeiro procedimento é mais fácil de escrever e entender
fonte