我目前正在使用新的Riverpod语法,但我遇到了一个错误,并且还没有找到解决方案.我需要传递一个依赖项,但它给出了这个错误The class TaskHomeInit must have a default constructor.有谁知道将HomeRepository依赖项传递给它的另一种方法.当我没有放置构造函数时,错误是它需要被初始化.
@Riverpod(keepAlive: true)
class TaskHomeInit extends _$TaskHomeInit {
final HomeRepository homeRepository;
// Constructor
TaskHomeInit({required this.homeRepository}); // here is error
@override
Future<TasksHomeState> build() async {
final List<TaskHome> taskHome = await homeRepository.getTaskHome();
return TasksHomeState(isLoading: false, tasksHome: taskHome);
}
}
当我不创建构造函数时,我得到这个错误:The final variable 'homeRepository' must be initialized. Try initializing the variable.
HomeRepository abstract class个
abstract class HomeRepository {
Future<List<TaskHome>> getTaskHome();
}
Implementation HomeRepository个
class HomeRepositoryImpl extends HomeRepository {
final HomeDatasource datasource;
HomeRepositoryImpl(this.datasource);
@override
Future<List<TaskHome>> getTaskHome() async {
final test = await datasource.getTaskHome();
return test;
}
}