将数据广播到Flutter中的多个小部件
有没有一种方法可以将数据从一个小部件广播到其他小部件?与Android上的BroadcastReceiver或iOS上的NSNotificationCenter相似。
具体来说,我正在尝试检测导航器何时弹出或推送新视图。我将navigatorObservers添加到MaterialApp。当小部件返回到前景时,我希望能够通过广播didPush和didPop的更改以及当前前景中的实际路由来通知它
回答:
Navigator.push
返回Future
将在Navigator.pop
被调用时完成的(并且可以选择将其用于将数据传递回称为的小部件push
)。例如,假设您的登录按钮具有以下onPressed
处理程序:
onPressed: () async { bool isLoggedIn = await Navigator.pushNamed(context, '/login');
if (isLoggedIn) {
// do something
}
}
当您的登录页面调用时Navigator.pop(true)
,Future
将会完成true
,并为其分配一个值isLoggedIn
。(null
如果用户使用“后退”按钮返回上一屏幕,则将得到提示。)
这也是如此showDialog
。
以上是 将数据广播到Flutter中的多个小部件 的全部内容, 来源链接: utcz.com/qa/407279.html