🕹️
【Flutter】ElevatedButtonでcolorを使った時No named parameterと怒られた時の対処法
はじめに
Flutter初心者なので、あたたかい目で見てください。
普段はプログラミングの勉強をしたり、エラーやバグ、解説記事を投稿しています。
ブログ
おすすめ
記事の閲覧、いいね、コメントしてくださるととても嬉しいです👍
筆者の環境
ハードウェア
- PC:M1MacbookAir
- OS:Monterey
- RAM:8GB
Flutterのバージョン等
[✓] Flutter (Channel stable, 3.3.2, on macOS 12.6 21G115 darwin-arm, locale
ja-JP)
[✓] Xcode - develop for iOS and macOS (Xcode 14.0)
症状
エラーの出るプログラム
child: ElevatedButton(
//色を青にしたいのに、エラーが出てしまう
color: Colors.blue,
onPressed: (){},
~~省略~~
エラー
lib/main.dart:100:17: Error: No named parameter with the name 'color'.
color: Colors.blue,
^^^^^
../../development/flutter/packages/flutter/lib/src/material/elevated_button.dart:65:9: Context: Found this candidate, but the arguments don't match.
const ElevatedButton({
^^^^^^^^^^^^^^
結論
styleFromを使う
child: ElevatedButton(
style: ElevatedButton.styleFrom(
backgroundColor: Colors.orange,
),
onPressed: (){},
~~省略~~
または、
MaterialStatePropertyを使う
child: ElevatedButton(
style: ButtonStyle(
backgroundColor: MaterialStateProperty.all<Color>(Colors.blue),
),
onPressed: (){},
~~省略~~
個人的にはstyleFromを使う方がコードがすっきりしている&わかりやすくシンプルなので好きです。
まとめ
- 基本的にはbackgroundColorを使う
- primaryは非推奨に
参考にしていたサイトの通りにやってもエラーが出たので焦りましたが、多分バージョンが
Flutterを触り始めて少しなのでまだ完全に理解できていないですが、すこしでも参考になれば幸いです。
関連記事
参考
Discussion