我为get包编写了一个扩展方法,这样我就可以将依赖项放入构建方法中,而不必担心它们会被注册一次以上
import 'package:get/get.dart';
extension on Get{
static T putIfNotRegistered<T>(T dependency, {bool find = false})
{
if(!Get.isRegistred<T>())
return Get.put(dependency);
if(find)
return Get.find<T>();
return null;
}
}
但是当我尝试使用它时,它说无法在Get上找到putIfNotRegistered方法?我在名为extension_methods.dart的文件中具有扩展方法,并且我试图在main.dart中找到它。我导入了extension_methods.dart。那么我该怎么做才能使扩展方法起作用?
读取错误
The method 'putIfNotRegistered' isn't defined for the type 'Get'.
Try correcting the name to the name of an existing method, or defining a method named 'putIfNotRegistered'.
当我尝试在main.dart中使用它
Get.putIfNotRegistered<DatabaseService>(FirestoreService(authenticationService.user));
答案 0 :(得分:0)
如果要在声明它的文件之外使用扩展方法,则必须为其命名。
extension AnyName on Get
应该解决您的问题。