将我的颤振通道从beta改为stable后,错误开始出现



我从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来自全局脚手架键,并且脚手架将负责呈现小吃栏。

最新更新