_Callback, _toByteData() и _futurize() не определены

#flutter #dart

#flutter #дротик

Вопрос:

У меня возникла эта проблема в Flutter:

Error: The method '_futurize' isn't defined for the class '_MainPage'.

Error: The method '_toByteData' isn't defined for the class '_MainPage'

Error: '_Callback' isn't a type.

Это в функции, упомянутой в https://api.flutter.dev/flutter/dart-ui/Image/toByteData.html , который используется для получения двоичного значения изображения.

Фактический код:

 Future<ByteData?> toByteData({ImageByteFormat format = ImageByteFormat.rawRgba}) {
  return _futurize((_Callback<ByteData> callback) {
    return _toByteData(format.index, (Uint8List? encoded) {
      callback(encoded!.buffer.asByteData());
    });
  });
}
 

Ответ №1:

Приведенный вами код представляет, как этот код был реализован.

По этой причине методы _futurize and _toByteData относятся private к Image классу и не могут быть доступны извне, отсюда и ошибки.

Если вы хотите использовать toByteData() функцию, вы можете просто использовать код, подобный следующему:

 ByteData byteData = await image.toByteData();
 

Комментарии:

1. Боже! Я все испортил. Вы правы, спасибо.