【发布时间】:2020-10-10 16:43:09
【问题描述】:
- 在某些事件中,我想使用 Navigator 导航到另一个屏幕。 我可以使用 BlocListener 轻松实现:
BlocListener<BlocA, BlocAState>(
bloc: blocA,
listener: (context, state) {
if (state is Success) {
Navigator.of(context).pushNamed('/details');
}
},
child: Container(),
)
但我无法在纯 Provider 中找到它的直接等价物。 我看到的唯一方法是交换屏幕:
home: Consumer<Auth>(
builder: (_, auth, __) => auth.user == null ? LoginPage() : MainPage()
)
这是一种常见的方式。但它不会使用 Navigator,因此它只会“弹出”MainPage 而没有屏幕转换。
- 在某些事件中,我想在 UI 中播放一些动画。
我在文档中发现Listenable 类是用来处理动画的,但没有详细解释。
-
在某些情况下,我想清除 TextEditingController。
-
在某些事件中,我想显示一个对话框。
还有更多类似的任务... 如何解决?提前致谢!
【问题讨论】: