Fixed-error: How to Solve The return type 'StreamController<ConnectivityStatus>' isn't a 'Stream', as defined by anonymous closure error
Fixed-error: How to Solve The return type 'StreamController<ConnectivityStatus>' isn't a 'Stream', as defined by anonymous closure error
我正在按照以下教程了解基于互联网连接的连接状态。
现在的问题是,我正在尝试实现代码。在我使用 StreamProvider 的过程结束时,在生成器中我收到以下错误:
错误:return 类型 'StreamController' 不是匿名闭包定义的 'Stream'。
代码如下:
main.dart
@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(),
),
);
}
}
用作者 git 代码完全替换我的类型代码,link 下面:
https://github.com/FilledStacks/flutter-tutorials/tree/master/011-network-sensitive-ui/
我尝试了 google 搜索,但对我的情况没有用。我的代码出了什么问题?是因为我使用的是其他供应商吗?
更新的答案作为自我发现的解决方案
@override
Widget build(BuildContext context) {
return StreamProvider(
builder: (context) => ConnectivityService().connectionStatusController.stream, // add .stream at end
child: ChangeNotifierProvider<ThemeChanger>(
builder: (_) => ThemeChanger((x) ? ThemeChanger.customDarkTheme : ThemeChanger.customLightTheme),
child: new MaterialAppWithTheme(),
),
);
}
}
我认为他们是教程发布时对包的更新,所以当我浏览大量文章时,我选择了关键字流控制器,对其进行了 RND,然后转移到流提供程序和在这方面做了更多的 RND,当这样做时,在另一个教程中看到了 sink 和 stream,但是由于本教程,我在代码和效率方面遥遥领先。我刚刚在句末添加了流,瞧!问题已解决。
我希望人们能够找到这个解决方案,为他们的应用程序做好准备:)
仅供参考:在从 v3.x.0 到 v4.0.0 的提供程序包迁移中,删除了提供程序的 builder
和 initialBuilder
参数。
之前:
StreamProvider( builder: (context) => ConnectivityService().connectionStatusController,
之后:
StreamProvider( create: (_) => ConnectivityService().connectionStatusController.stream,
我正在按照以下教程了解基于互联网连接的连接状态。
现在的问题是,我正在尝试实现代码。在我使用 StreamProvider 的过程结束时,在生成器中我收到以下错误:
错误:return 类型 'StreamController' 不是匿名闭包定义的 'Stream'。
代码如下: main.dart
@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(),
),
);
}
}
用作者 git 代码完全替换我的类型代码,link 下面: https://github.com/FilledStacks/flutter-tutorials/tree/master/011-network-sensitive-ui/
我尝试了 google 搜索,但对我的情况没有用。我的代码出了什么问题?是因为我使用的是其他供应商吗?
更新的答案作为自我发现的解决方案
@override
Widget build(BuildContext context) {
return StreamProvider(
builder: (context) => ConnectivityService().connectionStatusController.stream, // add .stream at end
child: ChangeNotifierProvider<ThemeChanger>(
builder: (_) => ThemeChanger((x) ? ThemeChanger.customDarkTheme : ThemeChanger.customLightTheme),
child: new MaterialAppWithTheme(),
),
);
}
}
我认为他们是教程发布时对包的更新,所以当我浏览大量文章时,我选择了关键字流控制器,对其进行了 RND,然后转移到流提供程序和在这方面做了更多的 RND,当这样做时,在另一个教程中看到了 sink 和 stream,但是由于本教程,我在代码和效率方面遥遥领先。我刚刚在句末添加了流,瞧!问题已解决。
我希望人们能够找到这个解决方案,为他们的应用程序做好准备:)
仅供参考:在从 v3.x.0 到 v4.0.0 的提供程序包迁移中,删除了提供程序的 builder
和 initialBuilder
参数。
之前:
StreamProvider( builder: (context) => ConnectivityService().connectionStatusController,
之后:
StreamProvider( create: (_) => ConnectivityService().connectionStatusController.stream,