我正在建造一个下一个。js App with React
const partyButton = useRef(null)
const handleParty = () => {
setTimeout(() => {
partyButton.current.classList.add('party-time');
console.log(partyButton.current.classList)
}, 10);
}
return (
<div className={styles.main_div}>
<button className={styles.button_2} ref={partyButton} onClick={handleParty}>click for party</button>
</div>
)
}
.party-time {
animation: party 2000ms infinite;
}
@keyframes party {
0% {
background: red;
}
20% {
background: orangered;
}
40% {
background: orange;
}
60% {
background: red;
}
80% {
background: orangered;
}
100% {
background: orange;
}
}
classList显示classList中有动画。但什么也没发生。看起来像:DOMTokenList(2)['cssanimation_button_2__iAS4j','party-time',value:'cssanimation_button_2__iAS4j party-time']
1条答案
按热度按时间mznpcxlj1#
在编写React代码时,永远不要设置或更改classList,就像你在示例中所做的那样。
相反,你应该使用一个状态:
许多使用classnames或clsx包来处理className。
如果你的类“party-time”使用某种CSS-in-JS或CSS模块设置,你可能需要将它重命名为party_time或partyTime,并使用
styles.partyTime
而不是"party-time"
设置它