dart Flutter:如何使用getx中可观察到的任何数据类型变量?

xyhw6mcr  于 2022-12-15  发布在  Flutter
关注(0)|答案(1)|浏览(184)

我在get package中使用变量observable时遇到问题。
问题是我不能使用Uint8List或Map等其他可观察变量,那么如何在GetxController中使用Uint8List可观察变量呢?
代码:

class ControllerHome extends GetxController {
var name = ''.obs 
Uint8List image = Uint8List.obs; <== error here.
 }
5f0d552i

5f0d552i1#

出现此错误的原因是Uint8List不是getx上支持的数据类型。虽然List<int>可以被支持,但Uint8ListList的专用类型,因为其整数值限制在0到255之间,如docs中所述。
作为一种解决方案,您可以在使用Observable之前解析Uint8List以创建List<int>

Uint8List image = Uint8List.fromList([0]);
late List<int> imageListInt = extractUint8List(image).obs;

List<int> extractUint8List(Uint8List source){
  List<int> extractedList = [];
  for(int x in image){
    extractedList.add(x);
  }
  return extractedList;
}

相关问题