【发布时间】:2020-09-30 10:12:47
【问题描述】:
我做了一个小函数来向状态数组添加自定义警报,然后视图会呈现它们。问题是,如果我连续两次调用该函数,则第一个警报仅呈现片刻,然后将其替换为第二个警报。当我通过鼠标单击调用该方法时,该功能正常工作。
我尝试在推送到数组列表之前应用一些等待,但没有运气。
const Element = () => {
const [alerts, setAlerts] = React.useState([])
const addAlert = (data) => {
setAlerts([...alerts, <CustomAlert key={alerts.length} message={data.message} color={data.color} />])
}
return (
<div>
<button onClick={() => {
// this renders only the last state update.
addAlert({message: "test", color: "error"});
addAlert({message: "2", color: "error"})
}
}>
add alert button
</button>
<div>
{alerts}
</div>
</div>
);
}
【问题讨论】:
标签: javascript reactjs react-hooks state