Flutter

[Flutter] SnackBarを使おうとすると Scaffold.of() called with a context that does not contain a Scaffold. と怒られた

Flutterで SnackBar を使おうとしたら

Scaffold.of() called with a context that does not contain a Scaffold.

と怒られました。

これを回避するためには

  • 内部で SnackBar を使いたいウィジェットを Builder でラップしてあげて、新しい BuildContextを使う。
  • SnackBarの代わりにfluttertoastライブラリに置き換える。

を行えばOKです。

SnackBarを引き続き使いたい場合の例

@override
Widget build(BuildContext context) {
  return Scaffold(
    appBar: AppBar(
      title: Text('ほげ'),
    ),
    body: Builder(
      builder: (BuildContext context) {
        return Center(
          child: RaisedButton(
            child: Text('保存'),
            onPressed: () {
              Scaffold.of(context).showSnackBar(SnackBar(
                content: Text('SnackBarが正常に動作します'),
              ));
            },
          ),
        );
      },
    ),
  );
}

 

created by Rinker
¥4,048 (2023/01/31 18:38:13時点 楽天市場調べ-詳細)

 

Flutterを学ぶなら世界最大級のオンライン学習サイトUdemyがおすすめ

Flutterを学ぶなら、世界最大級のオンライン学習サイトUdemy
がおすすめです。


通常ですと、各コース2万円程度するのですが、年がら年中割引セールスを行なっており、割引後価格はなんとおおむね1500円程度で受講することができます。
今すぐ受講しなくても、安い時に大量に買っておいて、あとでじっくり勉強するのがかしこいやり方だと思います。

-Flutter

© 2023 かずのアプリときどきキャンプ飯 Powered by AFFINGER5