gpt4 book ai didi

flutter - 由匿名关闭错误定义的固定错误 : How to Solve The return type 'StreamController' isn't a 'Stream' ,

转载 作者:行者123 更新时间:2023-12-03 13:28:54 29 4
gpt4 key购买 nike

我正在按照以下教程了解基于互联网连接的连接状态。

链接:https://www.filledstacks.com/post/make-your-flutter-app-network-aware-using-provider-and-connectivity-status/

现在的问题是,那么我正在尝试实现代码。在我使用 StreamProvider 的过程结束时,在构建器中我收到以下错误:

错误:返回类型“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 代码完全替换我的类型代码,链接如下:
https://github.com/FilledStacks/flutter-tutorials/tree/master/011-network-sensitive-ui/

我试过谷歌搜索,但对我的情况没有用。我的代码出了什么问题?是因为我在使用另一个供应商吗?

自我发现的解决方案更新后的答案
@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(),
),
);
}
}

我认为它们是从教程发布时对包的更新,因此当我阅读大量文章时,我选择了一个关键字流 Controller ,对其进行了 RND,然后移至 Stream Provider 并在其上进行了更多 RND这样做时,在其他教程之一中看到了 sink 和 stream,但由于本教程,我在代码和效率方面遥遥领先。我刚刚在末尾添加了流,瞧!问题解决了。

我希望人们能够找到这个解决方案,准备好用于他们的应用程序:)

最佳答案

仅供引用:在从 Provider 包的 v3.x.0 到 v4.0.0 的迁移中,builderinitialBuilder提供者的参数被删除。
前:

StreamProvider( builder: (context) => ConnectivityService().connectionStatusController,
后:
StreamProvider( create: (_) => ConnectivityService().connectionStatusController.stream,

关于flutter - 由匿名关闭错误定义的固定错误 : How to Solve The return type 'StreamController<ConnectivityStatus>' isn't a 'Stream' ,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58013611/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com