flutter - Mobx 颤振 observable 没有更新值。每次我得到默认值
问题描述
您好,我是 Flutter 的新手,我正在尝试使用 mobx 状态管理。
import 'package:mobx/mobx.dart';
part 'counter.g.dart';
class Counter = _Counter with _$Counter;
abstract class _Counter with Store {
@observable
String hello = 'Hello';
@action
void changeName(_name){
hello = _name;
}
}
和 .g.dart 也生成了更新的值。我正在触发动作(动作调用部分)
final Counter counter = Counter();
return Observer(builder: (_)=> InkWell(
onTap: () {
counter.changeName("updated value");
}.....something like this.
渲染部分:
final Counter counter = Counter();
return Scaffold(
body: Observer(builder: (_) {
return Container(
height: 100.0,
width: 100.0,
decoration: BoxDecoration(),
child: Text(counter.hello),
);
}),
每次我将 counter.hello 设为“Hello”(默认值)。我没有收到“更新值”
-> Action changeName 正在触发(我已经调试过了)
请帮我。
解决方案
这部分
final Counter counter = Counter();
return Observer(builder: (_)=> InkWell(
onTap: () {
counter.changeName("updated value");
}
而这部分
final Counter counter = Counter();
return Scaffold(
body: Observer(builder: (_) {
return Container(
height: 100.0,
width: 100.0,
decoration: BoxDecoration(),
child: Text(counter.hello),
);
}),
是否在同一个小部件树中?我注意到在这两个部分中都实例化了 Counter(),要更新文本,您需要使用该类的相同实例。
推荐阅读
- performance - Kotlin 中的空方法是否有性能成本?
- angular - 在 Angular 6 中,滚动如何突出显示导航“li”项
- javascript - Semantic UI React Dropdown Search - 在关闭或输入时访问自动完成建议
- xcode - 在 xcode 服务器机器人上运行时,测试配置是否应该在测试结果中显示两次?
- machine-learning - 使用 sigmoid 函数的输出作为胜率预测是否合理?
- python - 如何在pyspark中使用foldleft?
- rss - Rundeck:如何成功启用 RSS 提要?
- anylogic - 有没有办法通过数据库中的时间戳触发 Anylogic 中的事件
- mysql - Mysql日期条件显示不正确的结果
- git - 如果未安装,请安装 GIT 并克隆