将数据广播到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

回到顶部