大家好,我面臨一個簡單的問題,我有這個小代碼,但不起作用
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 的自動完成功能時,該方法不存在。

我在檔案的頂部包含了 import 陳述句,該陳述句指向定義我的擴展名的正確檔案。所以我無法弄清楚出了什么問題,請在這里提供任何幫助,我們將不勝感激。在這些情況下,同一個檔案中存在其他擴展到 String 和 Map 型別并且作業正常。
uj5u.com熱心網友回復:
你可以叫base64上ImageExt一樣ImageExt.base64('...', width: 24, height: 24);。目前擴展上的靜態成員只能在擴展本身的命名空間中訪問(在這種情況下是 ImageExt 而不是 Image)。
您可能有興趣閱讀不久前在 dart 語言存盤庫上提交的此功能請求,該請求要求更改靜態擴展方法以支持此功能。https://github.com/dart-lang/language/issues/723
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/372831.html
上一篇:用枕頭畫一個倒置的餡餅切片
