【发布时间】:2023-01-31 21:33:36
【问题描述】:
如何更改悬停在适当项目反应上的样式?现在一次更改所有项目的样式。将鼠标悬停在添加到购物车按钮上,我只需要更改所选的 div 样式。 https://codesandbox.io/s/trusting-moon-djocul?file=/src/components/Category.js**
import React, { useState } from "react";
import styles from "./category.module.css";
import Categories from "./Categories";
const Category = () => {
const [hovered, setHovered] = useState(false);
const [data, setData] = useState(Categories);
const style = hovered
? { backgroundColor: "#ffcbcb", color: "#fff", transition: "all 0.5s ease" }
: {};
const filterResult = (catItem) => {
const result = Categories.filter((curData) => curData.category === catItem);
setData(result);
};
return (
<>
<div className={styles.items}>
{data.map((value) => {
const { id, title, price, description } = value;
return (
<>
<div className={styles.item} key={id} style={style}>
<h1>{title}</h1>
<p>
{price} <span>$</span>
</p>
<p>{description}</p>
<button
onMouseEnter={() => setHovered(true)}
onMouseLeave={() => setHovered(false)}
className={styles.btn}
>
Add to Cart
</button>
</div>
</>
);
};
export default Category;
【问题讨论】:
-
看起来最好只在此处使用 CSS 来完成。也许更新呈现的 HTML 和任何 CSS。
标签: javascript reactjs hover destructuring onmouseover