0

フラッターでプロバイダーを学習しようとしています。しかし、私は問題に直面しています。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」という名前のゲッターまたはフィールドを定義してみてください。

このエラーを修正するために私を助けてください。そして、何が起こっているのかを説明してください。

4

3 に答える 3

0

ああ、この変更 _image を image に解決しました。ありがとう@ikerfah

于 2020-11-03T14:05:00.427 に答える