当前位置: 首页 > 知识库问答 >
问题:

重新渲染的次数过多。React 限制渲染次数以防止无限循环

燕涵容
2023-03-14

当我试图设置状态,然后得到一个错误。错误:太多的重新渲染。React限制渲染的数量以防止无限循环。

const Money= (props) => {
     // some states and functions
      .
      .
      /
     const [loss, setLoss] = useState('');
     const [gain, setGain] = useState('');

     const diffrenceInCount = (todayCount as any) - (yestarDayCount as any);
        // (todayCount(6) and yestarDayCount(24) are my some states which holds the respective values)
        //diffrenceInCount = -18

        if (diffrenceInCount < 0) {
          const moneyLoss = diffrenceInCount.toString();
          setLoss(moneyLoss );
        }
        if (diffrenceInCount > 0) {
          const moneyGain = diffrenceInCount.toString();
          setGain(moneyGain);
        }

       useEffect(() => {
         userMoney();
         allUserMoney();
       }, [])

 return (
      <IonContent>
       {* some code *}
      </IonContent>
      );
}
export default Money;

我已经用useReducer尝试过了,我正在寻找设置状态的解决方案。


共有1个答案

周翼
2023-03-14
useEffect(() => {
    if (diffrenceInCount < 0) {
      const moneyLoss = diffrenceInCount.toString();
      setLoss(moneyLoss );
    }
    if (diffrenceInCount > 0) {
      const moneyGain = diffrenceInCount.toString();
      setGain(moneyGain);
    }
}, [diffrenceInCount]);

你应该试试这个...它仅在差异发生变化时运行计数

 类似资料:
  • 我正在尝试创建登录表单,但出现了此错误。 任何人都可以解释为什么会发生此错误?? 我是新来的反应本土。 忽略这个(只是为了加量)= =我得补充一些没用的句子因为StackOverflow给我< code > '看起来你的帖子大部分是代码;请再补充一些细节。(对这个stackoverflow错误感到非常沮丧)

  • 如何防止以下错误: 太多的重新渲染。React限制渲染的数量,以防止无限循环。' 我刚刚将一个基于类的组件更改为功能组件,但它不起作用 我的源代码 我只是将一个基于类的组件更改为功能组件,我得到了这些错误。 0个 如何防止以下错误: 太多的重新渲染。React限制渲染的数量,以防止无限循环。'

  • 这是来自物料界面的模板。我从GitHub的注册中选择了这个模板,我只导入了useState并尝试使用它。 它抛出“太多的重新渲染。React限制渲染数量以防止无限循环材质”, 我尝试过使用反应钩子,因为我不能实现类。

  • 我很困惑为什么Iam会出现这个错误:太多的重新呈现。React限制呈现次数以防止无限循环。当我尝试调用USESTAT保存checkBoxList数据时,就会发生这种情况。如果我注释掉行setListOptions(checkBoxList);错误消失了。我希望发生的是,setListoptions应该保存在本地,然后我可以调用listOptions来映射我的数据。谢谢你的协助。

  • 我想建立一个组件 使用Axios将文件上传到API。 响应被存储并传递到另一个组件。 但使用下面的代码,我得到了太多的错误重新渲染和错误突出显示 组件的完整代码如下所示。我是一个比较新的反应者,3天多来一直在试图找出这个错误的根本原因,但没有任何帮助。我不知道我哪里出错了。

  • 我在使用时遇到一个错误。即使加载页面是新鲜的,没有按下任何按钮,我的按钮onClick事件侦听器激活了,正如我之前在主题中提到的,我的错误: “错误:重新呈现太多。React限制呈现次数以防止无限循环。”