第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

在反應(yīng)中顯示懸停在特定卡片上

在反應(yīng)中顯示懸停在特定卡片上

我面臨這個(gè)問題。我想在選擇的這個(gè)框中顯示懸??颉e 當(dāng)我將鼠標(biāo)懸停在框一上時(shí),我想顯示懸停一、框二 -> 懸停二。但在我的示例中,當(dāng)我將鼠標(biāo)懸停在“一”上時(shí),兩者都會(huì)顯示。我試圖用 refs 或 e.target 來做到這一點(diǎn),但總是有些事情不是我想要的。鏈接到 stackblitz:https://stackblitz.com/edit/react-hc4741 ?file=src/App.jsimport React, { useState } from "react";import "./style.css";import { BooksSection, BookCard, BookCardHover } from "./Styled";export default function App() {  const [displayBookCardHover, setDisplayBookCardHover] = useState(false);  const showCardHover = () => {    setDisplayBookCardHover(true);  };  const hiddenCardHover = () => {    setDisplayBookCardHover(false);  };  return (    <div>      <BooksSection>        <BookCard          bgColor={"#000"}          color={"#fff"}          onMouseEnter={showCardHover}          onMouseLeave={hiddenCardHover}        >          <BookCardHover display={displayBookCardHover}>            Hover One          </BookCardHover>          Box One        </BookCard>        <BookCard          bgColor={"#fff"}          color={"#000"}          onMouseEnter={showCardHover}          onMouseLeave={hiddenCardHover}        >          <BookCardHover display={displayBookCardHover}>            Hover Two          </BookCardHover>          Box Two        </BookCard>      </BooksSection>    </div>  );}樣式組件import styled from "styled-components";export const BooksSection = styled.div`  display: flex;  flex-direction: row;  flex-wrap: wrap;  width: 100wh;`;export const BookCard = styled.div`  width: 50%;  height: 500px;  padding: 20px 0;  background: ${props => props.bgColor};  color: ${props => props.color};  display: flex;  flex-direction: column;  justify-content: center;  align-items: center;  position: relative;`;export const BookCardHover = styled.div`  position: absolute;  top: 0;  left: 0;  width: 100%;  height: 100%;  font-size: 50px;  background: rgba(0, 0, 0, 0.7);  visibility: ${({ display }) => (display ? "100" : "hidden")};`;
查看完整描述

4 回答

?
catspeake

TA貢獻(xiàn)1111條經(jīng)驗(yàn) 獲得超0個(gè)贊

問題是你在兩個(gè)地方都有完全相同的組件和完全相同的 prop 值,因此無論你對值做什么,它們都會(huì)同時(shí)顯示/隱藏displayBookCardHover。


訣竅是為每個(gè)值使用單獨(dú)的值。像這樣:


const [hoverIndex, setHoverIndex] = useState(-1);


...

const showCardHover = (index) => {

  setHoverIndex(index);

}


const hiddenCardHover = () => {

  setHoverIndex(-1);

}


...

<BookCard

  ...

  onMouseEnter={() => showCardHover(0)}

  ...

>

  <BookCardHover display={hoverIndex === 0}>


...


<BookCardHover display={hoverIndex === 1}>

希望你能明白。


順便說一句, prop 沒有“100”值visibility。它要么是“隱藏的”,要么是“可見的”。


查看完整回答
反對 回復(fù) 2023-09-14
?
達(dá)令說

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超6個(gè)贊

import React, { useState } from "react";

import "./style.css";

import { BooksSection, BookCard, BookCardHover } from "./Styled";


export default function App() {

  const [displayBookCardHover, setDisplayBookCardHover] = useState({

  boxOneHover: false,

  boxTowHover: false

});


const showCardHover = box => {

  if (box === 1) {

     setDisplayBookCardHover(ps=>({ ...ps, boxOneHover: true }));

  } else {

     setDisplayBookCardHover(ps=>({ ...ps, boxTowHover: true }));

  }

};

const hiddenCardHover = box => {

  if (box === 1) {

     setDisplayBookCardHover(ps=>({ ...ps, boxOneHover: false }));

  } else {

     setDisplayBookCardHover(ps=>({ ...ps, boxTowHover: false }));

  }

};


return (

 <div>

  <BooksSection>

    <BookCard

      bgColor={"#000"}

      color={"#fff"}

      onMouseEnter={() => showCardHover(1)}

      onMouseLeave={() => hiddenCardHover(1)}

    >

      <BookCardHover display={displayBookCardHover.boxOneHover}>

        Hover One

      </BookCardHover>

      Box One

    </BookCard>

    <BookCard

      bgColor={"#fff"}

      color={"#000"}

      onMouseEnter={() => showCardHover(2)}

      onMouseLeave={() => hiddenCardHover(2)}

    >

      <BookCardHover display={displayBookCardHover.boxTowHover}>

        Hover Two

      </BookCardHover>

      Box Two

    </BookCard>

  </BooksSection>

 </div>

 );

}


查看完整回答
反對 回復(fù) 2023-09-14
?
FFIVE

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個(gè)贊

您的代碼的問題是 - 兩個(gè)BookCardHover組件都使用相同的參考狀態(tài)來顯示其狀態(tài)displayBookCardHover,因此,當(dāng)一個(gè)組件更改 的值時(shí)displayBookCardHover,它會(huì)自動(dòng)反映在另一個(gè)組件上。


查看完整回答
反對 回復(fù) 2023-09-14
?
慕容森

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超18個(gè)贊

我認(rèn)為BookCard應(yīng)該是一個(gè)組件。每個(gè)人都應(yīng)該有自己的狀態(tài)。在 App.js 中,您可以使用 BookCard 并傳遞 bgColor 和 color 以及您想要自定義每個(gè) BookCard 的任何內(nèi)容作為 props 并在其中使用它們。



查看完整回答
反對 回復(fù) 2023-09-14
  • 4 回答
  • 0 關(guān)注
  • 184 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號