Flutter 修正错误:如何解决返回类型';StreamController<;康涅狄格州>';isn';t a';流';,由匿名闭包错误定义
我遵循以下教程了解基于internet连接的连接状态 链接: 现在的问题是,然后我尝试实现代码。在使用StreamProvider的过程结束时,在builder中,我得到以下错误: 错误:返回类型“StreamController”不是匿名闭包定义的“Stream” 代码如下: 主飞镖Flutter 修正错误:如何解决返回类型';StreamController<;康涅狄格州>';isn';t a';流';,由匿名闭包错误定义,flutter,status,mobile-application,connectivity,Flutter,Status,Mobile Application,Connectivity,我遵循以下教程了解基于internet连接的连接状态 链接: 现在的问题是,然后我尝试实现代码。在使用StreamProvider的过程结束时,在builder中,我得到以下错误: 错误:返回类型“StreamController”不是匿名闭包定义的“Stream” 代码如下: 主飞镖 @override Widget build(BuildContext context) { return StreamProvider( builder: (context)
@override
Widget build(BuildContext context) {
return StreamProvider(
builder: (context) => ConnectivityService().connectionStatusController, // ERROR LINE
child: ChangeNotifierProvider<ThemeChanger>(
builder: (_) => ThemeChanger((x) ? ThemeChanger.customDarkTheme : ThemeChanger.customLightTheme),
child: new MaterialAppWithTheme(),
),
);
}
}
@覆盖
小部件构建(构建上下文){
返回流提供程序(
生成器:(上下文)=>ConnectionVityService().connectionStatusController,//错误行
子项:ChangeNotifierProvider(
生成器:()=>ThemeChanger((x)?ThemeChanger.customdark主题:ThemeChanger.customlight主题),
孩子:新材料应用主题(),
),
);
}
}
将我的类型代码完全替换为作者的git代码,链接如下:
我试过谷歌搜索,但对我的案子没用。我的代码出了什么问题?是因为我正在使用其他提供商吗
通过自我发现将答案更新为解决方案
@覆盖
小部件构建(构建上下文){
返回流提供程序(
builder:(context)=>ConnectivityService().connectionStatusController.stream,//在末尾添加.stream
子项:ChangeNotifierProvider(
生成器:()=>ThemeChanger((x)?ThemeChanger.customdark主题:ThemeChanger.customlight主题),
孩子:新材料应用主题(),
),
);
}
}
我认为他们是从教程发布时起对软件包的更新,所以当我阅读大量文章时,我选择了一个关键字stream Controller,在它上面做了RND,然后转到流提供程序,在这上面做了更多的RND,在其他教程中看到了sink和Stream,但由于本教程的缘故,我在代码和效率方面走在了前面。我只是在结尾加了一个句号,瞧!问题解决了
我希望人们能够找到这个解决方案,为他们的应用程序做好准备:)FYI:在从3.x.0版迁移到4.0.0版的Provider包中,删除了Provider的
builder
和initialBuilder
参数
之前:
StreamProvider( builder: (context) => ConnectivityService().connectionStatusController,
之后:
StreamProvider( create: (_) => ConnectivityService().connectionStatusController.stream,
多谢各位
StreamProvider( create: (_) => ConnectivityService().connectionStatusController.stream,