Javascript 状态更新时出现React hook重新呈现错误
在我的应用程序中,我需要为每个行数据索引映射一个包含材质UI范围滑块的对象数组。更改其中一个范围滑块(左滑块按钮和右滑块按钮中的左按钮)的值时,滑动/选择的值需要更新到另一个表的名为Javascript 状态更新时出现React hook重新呈现错误,javascript,reactjs,react-hooks,Javascript,Reactjs,React Hooks,在我的应用程序中,我需要为每个行数据索引映射一个包含材质UI范围滑块的对象数组。更改其中一个范围滑块(左滑块按钮和右滑块按钮中的左按钮)的值时,滑动/选择的值需要更新到另一个表的名为new count的字段中 此外,从滑块获得的值,假设选择了10,它需要与键score\u impact(从对象数组中)相乘。乘法后获得的值,更新的\u风险\u分数需要传递给仪表组件,以便其指针根据该值移动。 该方法适用于包含范围滑块的数据表的每一行 我面临的问题是,每当我试图在迭代/映射中使用updated\u r
new count
的字段中
此外,从滑块获得的值,假设选择了10
,它需要与键score\u impact
(从对象数组中)相乘。乘法后获得的值,更新的\u风险\u分数
需要传递给仪表组件,以便其指针根据该值移动。
该方法适用于包含范围滑块的数据表的每一行
我面临的问题是,每当我试图在迭代/映射中使用updated\u risk\u score
更新状态时,它都会给出一个错误,即,
重新渲染的次数太多。React限制渲染的数量以防止无限循环。
我试图比较值的变化,然后只更新状态,但错误仍然存在。
即使出于同样的目的使用了本地存储,它也无法保存仪表的更新值
以下是代码的工作片段:
我已经在这个问题上停留了相当长的时间,因为我对使用钩子还不熟悉。如果您能尽快解决此问题,我们将不胜感激
提前感谢。设置风险评分(更新的风险评分);
当您使用useState并设置组件重新渲染的值时。在您的情况下,setRiskScore()每次都会更新状态,每次重新渲染后都会再次调用它
UPD.
if (value_selected && value_selected.index === i) {
percent_diff = formatPercent(percentValue.value, ele.current_count);
updated_risk_score = Math.abs(ele.score_impact) * percentValue.value;
if (updated_risk_score !== riskScore) {
setRiskScore(updated_risk_score);
}
renderNewValue = Number(value_selected.value);
} else {
renderNewValue = ele.current_count;
}
是的,我明白了,但是你能建议我如何解决这个问题吗?尝试一次一次地解决这个问题更新的风险值需要从
renderInterventionsData
render函数传递。不是来自handleChanges()。你确定这样行吗?因为从slider获得的值需要与objectsTry映射数组中的某个参数相乘到这个参数)