gpt4 book ai didi

flutter - 查找停用的小部件的祖先是不安全的

转载 作者:IT王子 更新时间:2023-10-29 06:43:13 24 4
gpt4 key购买 nike

我是 Flutter 的新手,我正在尝试使用对话框接收数据。当在 textField 中单击时,出现 image2 的错误...

Layout's Image Error's Image

show(BuildContext context){

var dialog = Dialog(
child: Container(
margin: EdgeInsets.all(8.0),
child: Form(
child: Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
TextFormField(
decoration: InputDecoration(
labelText: "Insira o número de telefone",
border: OutlineInputBorder(
borderRadius: BorderRadius.all(Radius.circular(2.0)))),
),
Row(
mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[
FlatButton(
onPressed: () {
Navigator.of(context).pop();
},
child: Text("Cancelar")),
FlatButton(
onPressed: () {
Navigator.of(context).pop();
},
child: Text("Aceitar"))
],
)
],
),
),
),
);

showDialog(context: context,builder: (context){
return dialog;
});
}

这是我的代码。

I/flutter (31032): Looking up a deactivated widget's ancestor is unsafe.
I/flutter (31032): At this point the state of the widget's element tree is no longer stable. To safely refer to a
I/flutter (31032): widget's ancestor in its dispose() method, save a reference to the ancestor by calling
I/flutter (31032): inheritFromWidgetOfExactType() in the widget's didChangeDependencies() method.
I/flutter (31032):

最佳答案

声明一个全局变量

    final GlobalKey<ScaffoldState> _scaffoldKey = GlobalKey<ScaffoldState>();

然后在您的小部件构建的脚手架上注册 key ,例如

    @override
Widget build(BuildContext context) {
return Scaffold(
key: _scaffoldKey,
...

然后在对话框上

show(BuildContext context){

var dialog = Dialog(
child: Container(
margin: EdgeInsets.all(8.0),
child: Form(
child: Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
TextFormField(
decoration: InputDecoration(
labelText: "Insira o número de telefone",
border: OutlineInputBorder(
borderRadius: BorderRadius.all(Radius.circular(2.0)))),
),
Row(
mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[
FlatButton(
onPressed: () {
Navigator.of(context).pop();
},
child: Text("Cancelar")),
FlatButton(
onPressed: () {
Navigator.of(context).pop();
},
child: Text("Aceitar"))
],
)
],
),
),
),
);

将该脚手架上下文传递给 showDialog 方法

showDialog(context: _scaffoldKey.currentContext ,builder: (context){
return dialog;
});
}

关于flutter - 查找停用的小部件的祖先是不安全的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54617432/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com