在反应中更新三元运算符内的状态
Posted
技术标签:
【中文标题】在反应中更新三元运算符内的状态【英文标题】:Updating state inside a ternary operator in react 【发布时间】:2020-12-07 04:50:45 【问题描述】:我正在使用moviedb api 来制作应用程序,但在更新三元运算符中的状态时遇到了一些问题。如果我运行以下代码来检查一切是否正常,则没有问题
(match.params.id === iteminfo[0]) ? console.log("match") : console.log("nomatch")
如果 id 和 iteminfo 匹配,我得到匹配,如果它们不匹配,我得到“nomatch”
当我尝试像这样更新状态时
(match.params.id === iteminfo[0]) ? setRemove(true) : console.log("nomatch")
我收到以下错误
有没有办法更新状态使其不形成这个循环?
【问题讨论】:
这能回答你的问题吗? Uncaught Invariant Violation: Too many re-renders. React limits the number of renders to prevent an infinite loop 【参考方案1】:问题是你必须把这个三元组放在渲染函数中,这会产生一个反馈循环。将其包裹在 useEffect 回调中即可。
【讨论】:
以上是关于在反应中更新三元运算符内的状态的主要内容,如果未能解决你的问题,请参考以下文章