【问题标题】:Flutter & Provider : How do I make my StreamProvider listen to two different values?Flutter & Provider:如何让我的 StreamProvider 监听两个不同的值?
【发布时间】:2020-12-06 15:05:55
【问题描述】:

假设我有以下代码。下面的代码只监听一个值:AuthService().user。如何让我的提供者听另一个值?让我们称它为:isVoted

Widget build(BuildContext context) {
    return StreamProvider<SystemUser>.value(

      value: AuthService().user,

      child: MaterialApp(---))
}

我期待收到您的来信。非常感谢。

【问题讨论】:

    标签: firebase flutter dart provider state-management


    【解决方案1】:

    您可以使用 StreamGroup 将这两个流合并为一个 Stream 并收听。

    文档:https://api.flutter.dev/flutter/package-async_async/StreamGroup-class.html

    在你的情况下:

    Stream<Object> streamGroup = StreamGroup.merge([AuthService().user, isVoted]);
    
    Widget build(BuildContext context) {
        return StreamProvider<Object>.value(
    
        value: streamGroup,
    
        child: MaterialApp(---))
    }
    

    【讨论】:

    • Widget build(BuildContext context) { return StreamProvider&lt;SystemUser&gt;.value( value: AuthService().user, StreamProvider&lt;IsVoted&gt;.value( value: isVoted, child: MaterialApp(---))) }这样的东西怎么样
    • Multiprovider(provider: [StreamProvider(create: () => Authservice().user), StreamProivder(.create: () =>已投票) ] );
    猜你喜欢
    • 2021-12-14
    • 2021-02-01
    • 2021-09-02
    • 2021-06-27
    • 2022-10-14
    • 1970-01-01
    • 2020-09-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多