Flutter国际象棋时钟开发问题:点击按钮计时未递减排查
问题点整理
- 状态变量(
minutes、seconds、inGame等)错误定义在**Chessclock(StatefulWidget类)**中,而非对应的_ChessclockState类——StatefulWidget实例不可变,状态必须交由State类管理。 - 在
build方法中执行runtime计时逻辑:build会被频繁调用,且sleep是阻塞UI线程的操作,会导致界面卡死,不能这么实现计时。 - State类中访问Widget类成员时,未使用
widget.前缀(如直接写tim、inGame),不符合Flutter的State-Widget交互规范。 - 实例化
Chessclock时未传入必填的tim参数,会触发参数缺失错误。 runtime函数里使用了未定义的_tim变量,且修改时间后未调用setState()触发UI更新,无法刷新显示的时间。- 点击按钮修改
inGame状态时,操作的变量不属于当前State类的状态,无法正确触发组件重建更新。
内容的提问来源于stack exchange,提问作者Leonardo Contreras
相关产品推荐
相关产品推荐

