コンテナーであり、画像へのパスと画像のタイトルの 2 つの引数を取るウィジェットを作成しようとしています。これまでのウィジェット コードは次のとおりです。
class CharacterBox extends StatelessWidget {
final String imagePath;
final String characterName;
CharacterBox(this.imagePath, this.characterName);
@override
Widget build(BuildContext context) {
final CharacterBox args = ModalRoute.of(context).settings.arguments;
return Container(
margin: EdgeInsets.all(20.0),
height: 200,
width: 100,
child: Column(
children: [
Expanded(
child: Image(
image: AssetImage(args.imagePath),
alignment: Alignment.center,
fit: BoxFit.contain,
),
),
Container(
margin: EdgeInsets.all(5.0),
child: Text(
args.characterName,
style: TextStyle(color: Colors.white),
),
)
],
),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(5.0),
color: Color.fromARGB(255, 252, 70, 82)),
);
}
}
そして、次を使用して引数を渡します。
body: SafeArea(
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
CharacterBox("assets/artwork.png", "Character"),
],
),
),
ただし、次のエラーが表示されます。
The getter 'imagePath' was called on null.
Receiver: null
Tried calling: imagePath
このドキュメンテーションで行っていたので、ModalRoute 宣言に関連していると思います。しかし、私はまだ黙っていませんでした。