我试图理解 BLoC 模式,但我无法弄清楚在我的示例中在哪里或何时调用 dispose()。
我试图了解 Flutter 中的各种状态管理技术。
我想出了一个我设法使用 StatefulWidget、scoped_model 和流构建的示例。
我相信我终于想出了如何使用“BloC”模式使我的示例工作,但是我在调用 dispose() 方法时遇到了问题,因为我只使用 StatelessWidgets。
我尝试将 PageOne 和 PageTwo 转换为 StatefulWidget 并调用 dispose() 但最终在页面之间移动时过早地关闭了流。
在我的示例中,我是否可能完全不担心手动关闭流?
import 'package:flutter/material.dart';
import 'dart:async';
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return StreamBuilder<ThemeData>(
initialData: bloc.themeProvider.getThemeData,
stream: bloc.streamThemeDataValue,
builder: (BuildContext context, AsyncSnapshot<ThemeData> snapshot) {
return MaterialApp(
title: 'bloc pattern example',
theme: snapshot.data,
home: BlocPatternPageOne(),
);
},
);
}
}
// -- page_one.dart
class BlocPatternPageOne extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold( …Run Code Online (Sandbox Code Playgroud) flutter ×1