You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React组件状态更新失败 答完10题触发undefined读取报错

问题反馈
  • 本次问题涉及的完整代码可在对应CodeSandbox项目中查看。

我目前正在开发记忆游戏《Indefinite Interrogation》的复刻版本,游戏核心规则为:

玩家将持续收到问题,同一道题每次被提问时都必须给出完全相同的答案;题目首次出现时玩家可以任意作答,后续再遇到同一道题,答案必须和第一次的回答完全一致。

异常现象

代码设计的预期逻辑:每答完10道题,questionList(待展示的问题列表)会通过getNextQuestion()函数更新,Game组件会持续加载渲染新的问题。
实际运行时出现以下异常:

  • 答对第10道题后页面直接崩溃,抛出错误:Cannot read properties of undefined (reading '10')
  • 报错触发位置为代码第512行,排查发现questionList相关逻辑异常返回了undefined
  • 状态变量currentListIndex(即questionList对应的当前读取索引)没有被getNextQuestion()正常更新:函数执行完成后,代码仍然读取currentListIndex的旧值。由于每个questionList固定长度为10、合法索引范围是0-9,currentListIndex会异常增长到10,直接触发越界崩溃
  • 另一个状态变量questionsIndices(本质是索引数组,用于筛选可用的问题list生成新的questionList)同样存在无法被getNextQuestion()正常更新的问题

目前初步猜测问题出在useEffect()的使用方式上,需要定位具体错误原因并给出修复方案。

补充说明

  • 调试时可通过控制台输出查看每道题对应的correctAnswer字段
  • 游戏结束后会自动重置积分为0,重置流程耗时可能有数秒

内容的提问来源于stack exchange,提问作者SirIsaacNeutron

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 00:12:26