Firebase 参数类型';未来<;布尔>';can';不能分配给参数类型';小部件';[颤振]
您好,我在颤振方面还是新手,我想尝试在另一个类中创建警报对话框,这样我就可以使它成为可移植类,以便轻松使用警报 比如说,, 我创建了Firebase 参数类型';未来<;布尔>';can';不能分配给参数类型';小部件';[颤振],firebase,flutter,widget,future,Firebase,Flutter,Widget,Future,您好,我在颤振方面还是新手,我想尝试在另一个类中创建警报对话框,这样我就可以使它成为可移植类,以便轻松使用警报 比如说,, 我创建了alertDialog.dart,我想在main.dart中调用alertDialog.dart。 但我犯了个错误 无法将参数类型“Future”分配给参数类型“Widget” 对于警报,我使用另一个Dependencies Future _alertDialog(BuildContext context, {String isi, AlertType alert}
alertDialog.dart
,我想在main.dart
中调用alertDialog.dart
。
但我犯了个错误
无法将参数类型“Future”分配给参数类型“Widget”
对于警报,我使用另一个Dependencies
Future _alertDialog(BuildContext context, {String isi, AlertType alert}) {
return Alert(
context: context,
type: alert,
title: "Notification",
desc: "Laporan telah masuk, silahkan menunggu email dari admin!",
buttons: [
DialogButton(
child: Text(
"OKAY",
style: TextStyle(color: Colors.white, fontSize: 20),
),
onPressed: () => Navigator.pop(
context,
),
width: 120,
)
],
).show();
}
我试着这样做是因为我不了解上下文,我总是
查找停用小部件的祖先是不安全的
有什么解决办法吗?
谢谢你 函数
\u alertDialog
返回一个未来的,那么您希望得到什么呢?您不能在小部件树中使用\u alertDialog
,因为它不是小部件而是函数。相反,调用\u alertDialog
作为按钮或类似对象的onPressed
属性
我假设,Alert(/*…*/).show()代码>返回未来,因为它正在等待用户响应,如单击按钮。当在对话框按钮的onPressed
方法中调用()=>Navigator.pop(context)
时,未来可能会完成,显示警报功能的可能会无效
rflutter_alert: ^2.0.2
好吧,如果小部件将来返回,我确实理解这一点,但我认为它将更便于移植,然后在我拥有的每个文件中创建alertDialog,就像在main.dart中创建新警报一样,在另一个屏幕中创建新警报。所以我想如果我能把它变成一个新的文件,那么它会非常有用。你完全正确,在不同的文件中移动小部件和相关方法也是一种更好的方式。老实说,我只是不明白为什么它仍然不起作用。如果在按钮的onPressed处理程序中调用_-alertDialog(/*…*/),是否仍然会出错?是的,我使用Future,或者只使用名称,如_-showAlert(BuildContext上下文),但没有任何方法名称,但感谢您的回答!
void _showAlert(BuildContext context) {
showDialog(
context: context,
builder: (context) => AlertDialog(
title: Text("Wifi"),
content: Text("Wifi not detected. Please activate it."),
)
);
}