【发布时间】:2021-12-25 18:40:08
【问题描述】:
这里是 React 新手。一件非常简单的事情,我似乎无法做对。
我想从我的地图中更改点击元素上的类,而不是全部。
例如,如果我单击 id 为 1 的元素,它应该有一个“active-color”类。如果我然后单击 id 为 2 的元素,则该元素应采用类 'active-color' 并且 id 1 应该不再具有此类。
我尝试了许多不同的解决方案,但似乎无法做到这一点。它似乎不喜欢我在这里使用我的处理函数中的钩子并返回错误:TypeError: setActive is not a function。
任何想法或其他解决方案将不胜感激!
const ListItems = () => {
const { isActive, setActive} = useState(false)
const { item, dispatch } = useContext(AppContext);
const handler = (event) => {
dispatch({
type: 'SET_ITEM',
payload: event.currentTarget.dataset.index,
});
setActive(!isActive);
};
return (
<div className="container">
<h2 className="smallheader">Please choose one</h2>
<div className="flex flex-center">
{ITEMS.map((item) =>
<div className={isActive ? 'active-color' : 'card'} data-index={item.value} key={item.id} onClick={handler}>
<span
className="card-header">{item.name}</span>
<span className="card-description">{item.description}</span>
</div>
)}
</div>
</div>
)
};
export default ListItems;
【问题讨论】:
标签: javascript reactjs react-hooks conditional-statements react-context