反应循环问题

Posted

技术标签:

【中文标题】反应循环问题【英文标题】:React for loop issue 【发布时间】:2022-01-23 02:00:21 【问题描述】:

对不起,我在编写 React JS 时尝试在 for 循环中使用“break”语句,但最终状态没有更新。是我正确使用了这个语句还是要修改语法?

for (let i = j; i < 42; i += 6) 
    /* if(i > 35 && !board[i])
      board[i] = this.state.xIsNext ? 'X' : 'O';
    
    else if (board[i]) 
      while (board[i-6 * k]) 
        k++;
      
      board[i-6 * k] = this.state.xIsNext ? 'X' : 'O';
     */
    if (i > 35 && !board[i]) 
        board[i] = this.state.xIsNext ? 'X' : 'O';
     else if (board[i]) 
        board[i - 6] = this.state.xIsNext ? 'X' : 'O';
        break;
    

【问题讨论】:

【参考方案1】:

抱歉,我无法发表评论,您似乎没有更新您的状态,这就是它没有更新的原因。 例如,您应该使用钩子 setBoard 或者如果您有一个类组件(这似乎是您的情况),请使用 this.state=.... 来更新您的状态。如果您分享更多代码,我可能会给您更好的答案

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。 非常感谢,虽然我的问题还没有解决我非常感谢 如果您可以分享更多代码,我可能会为您提供更多帮助。正如我已经提到的,您“没有更新”您的状态。我不清楚您要做什么或组件是如何构造的。我可以给你一个解决方案,但这只是猜测你在做什么 codepen.io/bunansia/pen/KKXXKje 谢谢我发现我两次声明了同名数组,这就是它没有出现的原因,为造成的混乱道歉并再次感谢您的好意@C.O.D.E.R

以上是关于反应循环问题的主要内容,如果未能解决你的问题,请参考以下文章

使用 websocket 反应通量更新循环

反应中的for循环

在反应中循环一个对象?

自我导航反应页面进入无限循环

反应原生 |循环渲染 FlatList 的项目

从 api 获取时反应 useEffect 无限循环