エラー: Flutter の定数式ではありません 質問する

エラー: Flutter の定数式ではありません 質問する

私はここからデモを使用しています図書館そしてそれは完璧に動作します。しかし、プロジェクトに実装すると、この行でエラーが発生します

エラー: 定数式ではありません。const AssetImage(snapshot.data[index])、

私のはContainerで包まれていますInkWell

  InkWell(
      child: Container(
                 padding:
                      EdgeInsets.zero,
                     height: 150,
                      width: 150,
                      decoration:
                            BoxDecoration(
                                      image: DecorationImage(
                                       image: AssetImage(snapshot.data[index]),
                                            fit: BoxFit .fill),
                                  ),
                           ),
      onTap: () {
               print('The value is ' + snapshot .data[index]);
                    Navigator.push(
                      context,
                      MaterialPageRoute(
                        builder:
                         (context) =>
                            const FullScreenWrapper(imageProvider:const AssetImage(snapshot.data[index]),  // here the error
                                    )));
               },
       ),

ここで印刷された値は

値は /storage/emulated/0/Android/data/xxx/files/Pictures/scaled_1572364487252xxx.jpg です

もし私が定数、他のエラーが発生します

定数作成の引数は定数式でなければなりません。引数を有効な定数にするか、'new' を使用してコンストラクターを呼び出してください。

使ってみましたnewが、効果はありませんでした。

ベストアンサー1

ここではコンストラクターconst AssetImage(snapshot.data[index])を使用していますconst。コンパイラーはコンパイル時の定数を期待しており、渡される引数が定数ではなく、 の実行時の値に依存するため、エラーが発生しますsnapshot.data

キーワードを削除するだけで、constエラーなしでコンパイルされるはずです。

おすすめ記事