Flutterで開発を進めている際に次のようなエラーが発生した場合の対処法を解説していきます。
Error: Cannot invoke a non-'const' constructor
where a const expression is expected.
Try using a constructor or factory that is 'const'.
目次
原因
Error: Cannot invoke a non-'const' constructor
where a const expression is expected.
Try using a constructor or factory that is 'const'.
上のエラー文を読み解くと「const
を宣言しているのにコンパイル時に値が代入されていないから、コンパイルの時点で値が定まっている式を使用してください」を意味します。
分かりやすく解説すると、const
を宣言した定数ではコンパイル時に初期化されてしまうのに、ビルド時に定まる値で初期化しているためエラーが発生していることを示しています。
対処法
対処法の結論を言うと、const
の代わりにfinal
を宣言することでエラーは解消されるはずです。
というのも今回問題となっていたのがコンパイル時に定まっていない値(ビルド時に定まる値)をconst
で宣言した定数に代入したためにエラーが発生していました。
よってビルド時に初期化されるfinal
を宣言することでエラーが解消されます。
まとめ
今回はfinal
とconst
の性質に関わるエラーの対処方法を解説しました。
ぜひこの機会に次の解説記事で「定数」の知識を深めてみてください。
【Flutter/Dart】定数とは?finalとconstの違い・使い分け
今回はDart言語における「定数」の概念と使い方について解説していきます。プログラミング初心者でも理解しやすい内容になっているのでぜひ最後までご覧ください。 前の…