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
,等等(例如)