为什么 Dart 扩展方法不适用于图像 class
Why Dart extension methods don't work for Image class
大家好,我遇到了一个简单的问题,我有这个小代码,但无法正常工作
extension ImageExt on Image {
static Image base64(String encode, {double? width, double? height}) {
final reserveWord = 'base64,';
final codePart = encode.contains(reserveWord)
? encode.substring(encode.indexOf(reserveWord) + reserveWord.length)
: encode;
return Image.memory(base64Decode(codePart), width: width, height: height);
}
}
当我尝试使用 VSCode 的自动完成时,该方法不存在。
我在文件顶部包含了指向定义我的扩展名的正确文件的导入语句。所以我不知道出了什么问题,请在这里提供任何帮助,我们将不胜感激。在同一个文件中,在这些情况下还存在对 String 和 Map 类型的其他扩展,并且工作正常。
您可以像 ImageExt.base64('...', width: 24, height: 24);
一样在 ImageExt
上调用 base64
。目前扩展的静态成员只能在扩展本身的命名空间中访问(在本例中是 ImageExt 而不是 Image)。
您可能有兴趣阅读前一段时间在 dart 语言存储库上提交的功能请求,要求更改静态扩展方法以支持此功能。 https://github.com/dart-lang/language/issues/723
大家好,我遇到了一个简单的问题,我有这个小代码,但无法正常工作
extension ImageExt on Image {
static Image base64(String encode, {double? width, double? height}) {
final reserveWord = 'base64,';
final codePart = encode.contains(reserveWord)
? encode.substring(encode.indexOf(reserveWord) + reserveWord.length)
: encode;
return Image.memory(base64Decode(codePart), width: width, height: height);
}
}
当我尝试使用 VSCode 的自动完成时,该方法不存在。
我在文件顶部包含了指向定义我的扩展名的正确文件的导入语句。所以我不知道出了什么问题,请在这里提供任何帮助,我们将不胜感激。在同一个文件中,在这些情况下还存在对 String 和 Map 类型的其他扩展,并且工作正常。
您可以像 ImageExt.base64('...', width: 24, height: 24);
一样在 ImageExt
上调用 base64
。目前扩展的静态成员只能在扩展本身的命名空间中访问(在本例中是 ImageExt 而不是 Image)。
您可能有兴趣阅读前一段时间在 dart 语言存储库上提交的功能请求,要求更改静态扩展方法以支持此功能。 https://github.com/dart-lang/language/issues/723