我想在我的项目上的活动元素之间切换颜色,但这样他们都改变了点击的风格,我怎么能解决这个问题呢?谢谢!
function Language() {
const [style, setStyle] = useState(false);
const changeStyle = () => {
setStyle(!style);
};
return (
<>
<ul className="lang">
{languages.map(({ code, name, country_code }) => (
<li key={country_code}>
<h4 onClick={() => {i18next.changeLanguage(code); changeStyle()}} className={style ? "cont" : "cont2"}>{name}</h4>
</li>
))}
</ul>
</>
);
}
2条答案
按热度按时间f87krz0w1#
您可以尝试使用活动元素的索引作为状态,而不是使用布尔值作为状态:
然后,您将能够检查此
li
的索引是否与活动索引相同。7gcisfzg2#
您可以将活动li的代码设置为状态值,并检查状态值是否等于li的代码值或任何其他唯一值。