如何解决使用javascript“ document.getElementById”函数反应状态冲突
我在React Web应用程序中具有此功能:
const handleRateLightSelection = (cardId,rateId) => {
setRateLightSelected(0);
if (lastSelectedLightCardId != -1 && lastSelectedLightCardId != cardId) {
document.getElementById('lightBox-' + lastSelectedLightCardId).classList.remove("rate-box-grosso-light");
document.getElementById('lightBox-' + lastSelectedLightCardId + '-check').classList.add("d-none");
}
if (lastSelectedLightCardId == -1 || lastSelectedLightCardId != cardId) {
document.getElementById('lightBox-' + cardId).classList.add("rate-box-grosso-light");
document.getElementById('lightBox-' + cardId + '-check').classList.remove("d-none");
setRateLightSelected(rateId);
} else {
var boxSelection = document.getElementById('lightBox-' + cardId).classList.contains("rate-box-grosso-light");
if (boxSelection) {
document.getElementById('lightBox-' + cardId).classList.remove("rate-box-grosso-light");
document.getElementById('lightBox-' + cardId + '-check').classList.add("d-none");
setRateLightSelected(0);
} else {
document.getElementById('lightBox-' + cardId).classList.add("rate-box-grosso-light");
document.getElementById('lightBox-' + cardId + '-check').classList.remove("d-none");
setRateLightSelected(rateId);
}
}
lastSelectedLightCardId = cardId;
}
使用document.getElementById
函数,当用户选择框样式时,我正在处理它们。到目前为止,一切正常。
回想起来,我添加了setRateLightSelected
状态以处理选择ID的保存并在以后将其发送到我的后端。添加this
之后,document.getElementById
函数停止工作,我不明白为什么?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。