flutter - 如何在 flutter 中使用 dart.core.sink

标签 flutter dart

import 'package:flutter/material.dart';
import 'dart:async';



void main() => runApp(MyApp());

//Using Bloc
class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return StreamBuilder(
      stream: bloc.darkThemeEnabled,
      initialData: false,
      builder: (context, snapshot) => MaterialApp(
          theme: snapshot.data ? ThemeData.dark() : ThemeData.light(),
          home: HomePage(snapshot.data)),
    );
  }
}

class HomePage extends StatelessWidget {
  final bool darkThemeEnabled;

  HomePage(this.darkThemeEnabled);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Dynamic Theme"),
      ),
      body: Center(
        child: Text("Hello World"),
      ),
      drawer: Drawer(
        child: ListView(
          children: <Widget>[
            ListTile(
              title: Text("Dark Theme"),
              trailing: Switch(
                value: darkThemeEnabled,
                onChanged: bloc.changeTheme,
              ),
            )
          ],
        ),
      ),
    );
  }
}


class Bloc {
  final _themeController = StreamController<bool>();
  get changeTheme => _themeController.sink.add;
  get darkThemeEnabled => _themeController.stream;
}

final bloc = Bloc();


1.警告说关闭 dart.core.sink 的实例
2.flutter中为什么使用dart.core.sink?
3.我该如何解决这个错误
4.它的错误文档将我重定向到这个网站 link
5.我不知道如何在flutter中使用这些方法请指导我

最佳答案

dart.core.sinkinterfaceStream 实现.
警告显示,因为 dart 编译器希望您 .close()您的 Stream 实例。在这种情况下,这是您的 final _themeController = StreamController<bool>() .

如果要修复警告,请添加

void dispose() {
  _themeController.close();
}

到您的 Bloc 类(class)。

仅仅添加该方法并没有多大作用,因为它没有被调用。所以你应该改变你的 main() 方法来调用 bloc.dispose()之后 runApp(MyApp()) .

关于flutter - 如何在 flutter 中使用 dart.core.sink,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58168478/

相关文章:

android - Flutter:任务 ':location:compileDebugKotlin' 执行失败

flutter - 如何使用Flutter使用BloC访问登录时获得的身份验证 token

flutter - 即使配置了Android Studio,如何解决NDK丢失的问题?

flutter - 状态错误 : no element

flutter : How to use Riverpod with SharedPreference and List<String> Variable in multipage?

flutter - 发生更改时,TextFormField光标没有移动

Flutter web 上传文件取消事件

flutter - 云 Firestore : Best way to get collection with nested element references

flutter - GestureDetector会发射所有容器……如何只发射一个?

flutter - 根据父级大小按比例缩小小部件中的所有子级