質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Flutter

Flutterは、iOSとAndroidのアプリを同じコードで開発するためのフレームワークです。オープンソースで開発言語はDart。双方のプラットフォームにおける高度な実行パフォーマンスと開発効率を提供することを目的としています。

Dart

Dartは、Googleによって開発されたJavaScriptの代替となることを目的に作られた、ウェブ向けのプログラミング言語である。

Q&A

1回答

1991閲覧

Firebaseの情報でDropdownButtonを作ろうとしたら、null関連のエラー(?)で止まっています。

KeiHarry

総合スコア10

Flutter

Flutterは、iOSとAndroidのアプリを同じコードで開発するためのフレームワークです。オープンソースで開発言語はDart。双方のプラットフォームにおける高度な実行パフォーマンスと開発効率を提供することを目的としています。

Dart

Dartは、Googleによって開発されたJavaScriptの代替となることを目的に作られた、ウェブ向けのプログラミング言語である。

0グッド

0クリップ

投稿2022/09/04 09:23

前提

Firebaseで顧客名をDropdownButtomで表示しようとしています。以下のコードのExpandedの行から数えて6行目の"builder:(context, snapshot){"の最後の波括弧にアラートがついて、修正方法が分かりません。

dart

1//省略 2Expanded( 3 child: StreamBuilder<QuerySnapshot>( 4 stream: FirebaseFirestore.instance 5 .collection('customers') 6 .orderBy('date') 7 builder: (context, snapshot) { 8 if (snapshot.hasData) { 9 if (snapshot.data != null) { 10 final List<DocumentSnapshot> documents = 11 snapshot.data!.docs; 12 final list = <String>[]; 13 for (var value in documents) { 14 list.add(value['name']); 15 } 16 list.toSet().toList(); 17 return DropdownButton<String>( 18 value: "名前", 19 items: list 20 .map((String list) => DropdownMenuItem( 21 value: list, child: Text(list))) 22 .toList(), 23 onChanged: (String? value) { 24 setState(() { 25 tagText = value!; 26 }); 27 }, 28 ); 29 } 30 } 31 }), 32), 33//省略

警告文は以下の通りです。

The body might complete normally, causing 'null' to be returned, but the return type, 'Widget', is a potentially non-nullable type. Try adding either a return or a throw statement at the end.

実現したいこと

警告を外したいです。
よろしくお願いいたします。

試したこと

nullに関するwebページを見て!や?をつけていじってみましたが改善されませんでした。

補足情報

yamlファイルはこちらです。

yaml

1name: XXXX 2description: A new Flutter project. 3 4environment: 5 sdk: ">=2.17.6 <3.0.0" 6 7dependencies: 8 flutter: 9 sdk: flutter 10 cupertino_icons: ^1.0.2 11 firebase_core: ^1.17.1 12 firebase_crashlytics: ^2.8.1 13 firebase_analytics: ^9.1.8 14 flutter_inappwebview: ^5.3.2 15 firebase_auth: ^3.3.8 16 cloud_firestore: ^3.4.3 17 provider: ^5.0.0 18 flutter_riverpod: ^1.0.4 19 get: ^4.6.5 20 hive: ^2.2.3 21 hive_flutter: ^1.1.0 22 hive_generator: ^1.1.3 23 build_runner: ^2.2.0 24 flutter_slidable: ^2.0.0 25 sqflite: ^2.0.3 26 27dev_dependencies: 28 flutter_test: 29 sdk: flutter

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

とりあえずその警告を出なくするには、builderに設定するコールバックがどんな場合でもウィジェットを返すようにする必要があります。

そのコードだとif文の条件に当てはまらない場合のreturn文が無いです。

ですので、
=>内側のif文がfalse、外側のif文がtrueの場合。
=>外側のif文がfalseの場合(circular progress indicatorなど)

上記の場合のreturn文を追加する必要があると思います。

投稿2022/09/04 12:55

moriman

総合スコア615

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問