React钩子是React 16.8版本引入的新特性,它可以让我们在函数组件中使用状态和其他React特性。使用React钩子来控制每张卡片可以通过以下步骤实现:
npm install react react-dom
import React, { useState } from 'react';
function CardControl() {
const [activeCard, setActiveCard] = useState(null);
const handleCardClick = (cardId) => {
setActiveCard(cardId);
};
return (
<div>
<Card
id={1}
active={activeCard === 1}
onClick={handleCardClick}
/>
<Card
id={2}
active={activeCard === 2}
onClick={handleCardClick}
/>
<Card
id={3}
active={activeCard === 3}
onClick={handleCardClick}
/>
</div>
);
}
function Card({ id, active, onClick }) {
const handleClick = () => {
onClick(id);
};
return (
<div
className={`card ${active ? 'active' : ''}`}
onClick={handleClick}
>
Card {id}
</div>
);
}
export default CardControl;
useState
钩子来创建了一个名为activeCard
的状态变量和一个名为setActiveCard
的状态更新函数。activeCard
用于跟踪当前活动的卡片,setActiveCard
用于更新activeCard
的值。handleCardClick
函数中,我们通过调用setActiveCard
来更新activeCard
的值,以实现卡片的切换。CardControl
组件的返回值中,我们创建了三个Card
组件,并将activeCard
的值与每个卡片的active
属性进行比较,以确定哪个卡片应该处于活动状态。handleCardClick
函数会被调用,并将相应卡片的id
作为参数传递给它。然后,handleCardClick
函数会调用setActiveCard
来更新activeCard
的值,从而触发组件的重新渲染。通过上述步骤,你可以使用React钩子来控制每张卡片的状态,并实现卡片的切换效果。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云