我想在单击时将特定组件设置为活动组件,并在单击其他组件时更新活动组件。目前,这两个组件都处于活动状态。我想从以前单击的组件中删除活动状态。
const [activeComponent, setActiveComponent] = useState(null);
const updateActiveComponent = (e, active_component) => {
if (active_component.id != activeComponent?.id) {
setActiveComponent(active_component);
} else {
closeActiveComponent();
}
};
const closeActiveComponent = () => {
setActiveComponent(null);
};
<MyComponent
key={index}
card={card}
clickHandler={updateActiveComponent}
/>
1条答案
按热度按时间lstz6jyr1#
这里的问题是您总是将活动组件设置为
null
无论何时单击其中任何一个。如果想改变怎么办
MyComponent
根据它是否处于活动状态进行渲染,您需要向它传递一个道具来告诉它,例如。不知道是什么
MyComponent
看起来很难给出更多的指导-如果您需要更多的解释,请随意分享更多的代码。