![](/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.