フラッターでプロバイダーを学習しようとしています。しかし、私は問題に直面しています。ChangeNotifierFile _image
から取得したいのですが、エラーが表示されます。
ここに ChangeNotifierProvider があります
class ImagePicker extends ChangeNotifier {
File _image;
final picker = ImagePicker();
Future getImage({ImageSource source}) async {
final pickedFile = await picker.getImage(source: ImageSource.gallery);
if (pickedFile != null) {
_image = File(pickedFile.path);
} else {
print('No image selected.');
}
notifyListeners();
}
}
そして、これがその _image ファイルを取得したい HomeScreen です。
class HomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Hello"),
),
body: Container(
child: Column(
children: [
Text("Select a image"),
Image.file(Provider.of<ImagePicker>(context)._image),
IconButton(
icon: Icon(Icons.camera),
onPressed: () {
Provider.of<ImagePicker>(context).getImage();
})
],
),
),
);
}
}
それは私を示しています-ゲッター「_image」はタイプ「ImagePicker」に対して定義されていません。「_image」を定義するライブラリをインポートするか、名前を既存のゲッターの名前に修正するか、「_image」という名前のゲッターまたはフィールドを定義してみてください。
このエラーを修正するために私を助けてください。そして、何が起こっているのかを説明してください。