如何解决如果else条件不会设置结果,则反应UseState
好吧,所以尝试着想出最简单的方法来问这个。
首先,代码不是最漂亮的。这是我有史以来第三次做出反应,这是我在一周前开始的,大概在两个月前进行了编码。
我正在为COVID制作一个接受数据的表格:firstName,lastName,email,and risklevel
。
风险水平由回答的是的问题的数量决定;对于if-else-statements也是如此。
计数正常-根据回答正确的问题记录正确的数字。表格信息有效;唯一的事情是,这不会采用我的risklevel
状态并根据以下三个条件应用它:
function ModalPopUp() {
const [show,setShow] = useState(false);
const handleClose = () => setShow(false);
const handleShow = () => setShow(true);
const [FirstName,setFirstName] = useState('');
const [LastName,setLastName] = useState('');
const [email,setEmail] = useState('');
const [riskLevel,setRiskLevel] = useState(0);
const [dryCough,setDryCough] = useState(null);
const [sob,setSob] = useState(null);
const [Aches,setAches] = useState(null);
const [soreThroat,setSoreThroat] = useState(null);
const [headache,setHeadache] = useState(null);
const [fatigue,setFatigue] = useState(null);
const [exposure,setExposure] = useState(null);
// const [age,setAge] = useState(0)
// const [count,setCount] = useState(0)
// const [patients,SetPatients] = useState([]);
const riskState = () => {
let count = 0;
if(dryCough === true) {
count++
}
if(sob === true) {
count++
}
if(Aches === true) {
count++
}
if(soreThroat === true) {
count++
}
if(headache === true) {
count++
}
if(fatigue === true) {
count++
}
if(exposure === true) {
count++
}
if (count <= 2) {
setRiskLevel({riskLevel: riskLevel + 1})
}
if (count > 2 && count <= 4) {
setRiskLevel({riskLevel: riskLevel + 2})
}
if (count > 4) {
setRiskLevel({riskLevel: riskLevel + 3})
}
console.log(dryCough);
console.log(count);
console.log(riskLevel)
}
解决方法
很有可能RiskLevel是关闭捕获的过时值。尝试改用回调语法。
setRiskLevel(riskLevel => ({riskLevel: riskLevel + 1}))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。