Flutter 在颤振上导航时如何收听流?

Flutter 在颤振上导航时如何收听流?,flutter,dart,Flutter,Dart,仪表板页面 StreamBuilder( stream: db.getChatField2(uid), builder: (context, AsyncSnapshot<List<ChatFieldModel>> snapshot) { return ButtonMessage( () => Navigator.pushNamed(co

仪表板页面

StreamBuilder(
              stream: db.getChatField2(uid),
              builder: (context, AsyncSnapshot<List<ChatFieldModel>> snapshot) {
                return ButtonMessage(
                      () => Navigator.pushNamed(context, '/inboxPage',
                          arguments:
                              Arguments(model: snapshot.data)),
                );
})
    class InboxPage extends StatefulWidget {
      final List<ChatFieldModel> model;
      InboxPage({this.model});

    Text(widget.model.name);
StreamBuilder(
流:db.getChatField2(uid),
生成器:(上下文,异步快照){
返回按钮消息(
()=>Navigator.pushNamed(上下文“/inboxPage”,
论据:
参数(模型:snapshot.data)),
);
})
收件箱页面

StreamBuilder(
              stream: db.getChatField2(uid),
              builder: (context, AsyncSnapshot<List<ChatFieldModel>> snapshot) {
                return ButtonMessage(
                      () => Navigator.pushNamed(context, '/inboxPage',
                          arguments:
                              Arguments(model: snapshot.data)),
                );
})
    class InboxPage extends StatefulWidget {
      final List<ChatFieldModel> model;
      InboxPage({this.model});

    Text(widget.model.name);
类InboxPage扩展StatefulWidget{
最终列表模型;
InboxPage({this.model});
文本(widget.model.name);

当我在仪表板页面时,我更改了db端的名称值。之后,我导航到inboxPage。值被更改。我再次更改了db上的名称值,但值没有更改。

它没有更改,因为
inboxPage
中没有任何信号更改。如果您通过str而不是
model
,会发生什么eam作为
InboxPage
的一个参数,并且在其中也有一个
StreamBuilder
?或者,如果您不想更多,您可以将该列表设置为某种
可列出的
streams@frank06是否有任何方法可以创建服务类并从中返回值,并且我们可以随时随地访问该值?如果服务的值发生变化ce层,然后所有其他访问区域也会更改。对不起,我的英语不好。您可以拥有一个服务类,并从任何位置读取其值,是的。但请记住,颤振是一个声明性框架,您需要告诉它,当情况发生变化时,它应该重新呈现。这可以通过
设置状态
;您可以直接从
调用它tatefulWidget
或使用为您实现此功能的工具–例如
StreamBuilder
FutureBuilder
ValueListenableBuilder
,等等(例如)