flutter - setState() 没有更新颤振中的值
问题描述
问题:根据我找到的其他解决方案,我在构建函数之外初始化了我的变量,但 setState() 仍然没有更新我的值。
在这里,我尝试在感应到触摸时将 ldn(left-dice-number) 的值从 1 更新为 6。当我在控制台上打印值时,它显示:
I/flutter (29149): LDN = 1
I/flutter (29149): LDN = 6
这是我的有状态小部件的代码:
class DicePage extends StatefulWidget {
@override
_DicePageState createState() => _DicePageState();
}
class _DicePageState extends State<DicePage> {
int ldn;
@override
Widget build(BuildContext context) {
ldn = 1;
return Center(
child: Row(
children: <Widget>[
Expanded(
child: Padding(
padding: const EdgeInsets.fromLTRB(16, 16, 8, 16),
child: FlatButton(
padding: EdgeInsets.all(0),
onPressed: (){
setState(() {
print('LDN = $ldn');
ldn = 6;
print('LDN = $ldn');
});
},
child: Image.asset('images/dice$ldn.png'),
),
),
),
Expanded(
child:Padding(
padding: const EdgeInsets.fromLTRB(8, 16, 16, 16),
child: FlatButton(
onPressed: (){
print('Right buttin got pressde');
},
padding: EdgeInsets.all(0),
child: Image.asset('images/dice1.png'),
),
),
)
],
),
);
} // Build
}
解决方案
推荐阅读
- google-chrome - 为什么扩展添加的搜索引擎在弹出菜单中不显示“设为默认”?
- php - 超时作业挂起 15 或 30 分钟,然后运行
- javascript - 如何使用 javascript/jquery 在打印页面上设置 div 内容的样式?
- java - Android是一个线程可以处理多个socket吗?
- c# - 对象的属性是否设置?
- java - Android:FileProvider.getUriForFile“找不到配置的根”
- sas - 如何将PROC FCMP(SAS)中SOLVE函数的输出分配给全局变量/表?
- selenium - 当我的应用程序在上传时验证唯一文件名时,如何在量角器测试中多次上传同一个文件?
- javascript - 如何从html中的可点击列中获取行数据
- angular - 我应该为两个组件分离相同的实体集合吗?