私はここからデモを使用しています図書館そしてそれは完璧に動作します。しかし、プロジェクトに実装すると、この行でエラーが発生します
エラー: 定数式ではありません。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
エラーなしでコンパイルされるはずです。