1 回答

TA貢獻1863條經驗 獲得超2個贊
向下傳遞,setResponseAlert以便可以使用null或undefined代替使用hide狀態來調用它。
此外,而不是使用getElementById,因為這是 React,你應該以某種方式將 fade 類放入狀態:
export default function Alert({text, type, setResponseAlert, hideable = true, stick = true}) {
const [className, setClassName] = useState("fade alert alert-" + type);
function fadeOut() {
setClassName(className + ' fade-out');
window.setTimeout(() => {
setResponseAlert(null);
}, 500)
}
useEffect(() => {
if (!stick) {
window.setTimeout(fadeOut, 3000);
}
}, [])
return (
<div role="alert" className={className}>
{hideable
? <span className="icon-close close" onClick={e => fadeOut()}> </span>
: ''
}
{text}
</div>
);
}
添加回答
舉報