![](/img/trans.png)
[英]Scaffold.of() called with a context that does not contain a Scaffold
[英]Unhandled Exception: Scaffold.of() called with a context that does not contain a Scaffold
我试图在按钮单击时显示小吃栏,但由于某些原因,下面出现错误消息。
未处理的异常:使用不包含 Scaffold 的上下文调用 Scaffold.of()。
我错过了什么吗?
代码
class SignIn extends StatefulWidget {
@override
_SignInState createState() {
return _SignInState();
}
}
class _SignInState extends State<SignIn> {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: "Hello",
home: Scaffold(
body: Center(
child: ListView(shrinkWrap: true, children: <Widget>[
Center(
child: Form(
key: _formKey,
child: Column(children: <Widget>[
Container(
child: Column(
children: <Widget>[
Container(
child: Row(
children: <Widget>[
ElevatedButton(
child: Text("Login"),
onPressed: () {
Scaffold.of(context).showSnackBar(
SnackBar(
content: Text("Hello there!"),
),
);
})
],
),
)
],
),
)
]),
))
]))));
}
}
使用脚手架键显示小吃店。
class SignIn extends StatefulWidget {
@override
_SignInState createState() {
return _SignInState();
}
}
class _SignInState extends State<SignIn> {
final _formKey = GlobalKey<FormState>();
final _scaffoldKey = GlobalKey<ScaffoldState>();
@override
Widget build(BuildContext context) {
return MaterialApp(
title: "Hello",
home: Scaffold(
key: _scaffoldKey,
body: Center(
child: ListView(
shrinkWrap: true,
children: <Widget>[
Center(
child: Form(
key: _formKey,
child: Column(children: <Widget>[
Container(
child: Column(
children: <Widget>[
Container(
child: Row(
children: <Widget>[
ElevatedButton(
child: Text("Login"),
onPressed: () async {
_scaffoldKey.currentState.showSnackBar(
SnackBar(
content: Text("Hello there!"),
),
);
})
],
),
)
],
),
)
]),
),
),
],
),
),
),
);
}
}
尝试
Material App(主页:NewWidget())
其中
新小部件();
是返回 Scaffold的无状态或有状态小部件
创建一个新的小部件并粘贴 Scaffold 中的所有代码。 然后在家里返回小部件:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.