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>
);
}
添加回答
举报