我从beta移到稳定的颤振通道,在升级颤振后,
我得到ListTile()属性和ScaffoldMassanger的错误,
child: ListTile(
horizontalTitleGap: 10, // error
minVerticalPadding: 10, // error
),
ScaffoldMessenger.of(context).showSnackBar(SnackBar(
content: Text('success'),
duration: Duration(seconds: 2),
));
我尝试了以下解决方案:
flutter upgrade
flutter clean
flutter pub get
reinstalled dart and flutter plugin in VSCode
flutter run
updated vscode
没有成功
删除折旧属性后的错误日志,
lib/widget/list_expense。dart:32:9:错误:getter 'ScaffoldMessenger'没有为类'_ListExpenseState'定义。
- '_ListExpenseState'来自'package:XpenseTracker/widgets/list_expense. state '。飞镖"("lib/widget/list_expense.dart")。试着把这个名字修改成一个已经存在的getter的名字,或者定义一个名为'ScaffoldMessenger'的getter或字段。ScaffoldMessenger.of(上下文).showSnackBar(间小吃店(
这些属性已被删除,可以在类(ListTile中看到文档:https://api.flutter.dev/flutter/material/ListTile/ListTile.html
为了使用这些属性,请看看这里的这个包:https://pub.dev/packages/list_tile_more_customizable
(编辑]对于您的Scaffold问题,请尝试使用静态helper函数,然后将字符串传递给render,以及BuildContext:
static Future showSimpleSnackBar(
String message, GlobalKey<ScaffoldState> contextState) async {
final snackBar = SnackBar(
content: Text(message),
duration: Duration(seconds: 3),
action: SnackBarAction(
label: "Got it",
onPressed: () {
//invoke an action here...
},
),
);
contextState.currentState.removeCurrentSnackBar();
contextState.currentState.showSnackBar(snackBar);
}
确保BuildContext来自全局脚手架键,并且脚手架将负责呈现小吃栏。