dart 'showSnackBar' & 'hideCurrentSnackBar'已弃用,不应使用

vbopmzt1  于 2023-07-31  发布在  其他
关注(0)|答案(3)|浏览(136)

请帮助我,_scaffoldKey和_scaffoldKey.currentState导致修复代码时的主要问题。
我有以下代码:

void customSnackBar(GlobalKey<ScaffoldState> _scaffoldKey, String msg,
    {double height = 30, Color backgroundColor = Colors.black}) {
  if (_scaffoldKey == null || _scaffoldKey.currentState == null) {
    return;
  }
  _scaffoldKey.currentState.hideCurrentSnackBar();
  final snackBar = SnackBar(
    backgroundColor: backgroundColor,
    content: Text(
      msg,
      style: TextStyle(
        color: Colors.white,
      ),
    ),
  );
  _scaffoldKey.currentState.showSnackBar(snackBar);
}

字符串
我已经看过ScaffoldMessenger文档,但不明白如何将上述代码转换为使用ScaffoldMessenger

sd2nnvve

sd2nnvve1#

现在你可以使用ScaffoldMessenger了。看这里https://flutter.dev/docs/release/breaking-changes/scaffold-messenger在这里显示:

ScaffoldMessenger.of(context).showSnackBar(SnackBar(
    content: const Text('snack'),
    duration: const Duration(seconds: 1),
    action: SnackBarAction(
      label: 'ACTION',
      onPressed: () {
          ScaffoldMessenger.of(context).hideCurrentSnackBar;
      },
    ),
  ));

字符串

qfe3c7zg

qfe3c7zg2#

GlobalKey<ScaffoldState>更改为GlobalKey<ScaffoldMessengerState>

ecfsfe2w

ecfsfe2w3#

使用GlobalKey而不是GlobalKey。

相关问题