小编Aug*_*eaz的帖子

使用 BLoC 模式和 StatelessWidget 时如何调用 dispose

我试图理解 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

7
推荐指数
1
解决办法
4198
查看次数

标签 统计

flutter ×1