Error: Type 'SingleChildCloneableWidget' not found in Provider package
Error: Type 'SingleChildCloneableWidget' not found in Provider package
我更新了提供商。现在没用了
lib/di/global_providers.dart:13:6: Error: Type 'SingleChildCloneableWidget' not found.
List globalProviders = [
^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/di/global_providers.dart:18:6: Error: Type 'SingleChildCloneableWidget' not found.
List independentServices = [
^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/di/global_providers.dart:23:6: Error: Type 'SingleChildCloneableWidget' not found.
List dependentServices = [
^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/main.dart:18:16: Error: The argument type 'List' can't be assigned to the parameter type 'List'.
- 'List' is from 'dart:core'.
- 'SingleChildWidget' is from 'package:nested/nested.dart' ('../../flutter/.pub-cache/hosted/pub.dartlang.org/nested-0.0.4/lib/nested.dart').
providers: globalProviders,
^
lib/di/global_providers.dart:13:6: Error: 'SingleChildCloneableWidget' isn't a type.
List globalProviders = [
^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/di/global_providers.dart:18:6: Error: 'SingleChildCloneableWidget' isn't a type.
List independentServices = [
^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/di/global_providers.dart:23:6: Error: 'SingleChildCloneableWidget' isn't a type.
List dependentServices = [
代码
List<SingleChildCloneableWidget> globalProviders = [
...independentServices,
...dependentServices,
];
List<SingleChildCloneableWidget> independentServices = [
Provider.value(value: YelloChatDb()),
Provider.value(value: YelloChatClient()),
];
List<SingleChildCloneableWidget> dependentServices = [
ProxyProvider<YelloChatDb, CategoryDao>(
update: (context, yelloChatDb, categoryDao) => CategoryDao(yelloChatDb)),
ProxyProvider<YelloChatDb, SubCategoryDao>(
update: (context, yelloChatDb,subCategoryDao) => SubCategoryDao(yelloChatDb)),
ProxyProvider<YelloChatDb, UserDao>(
update: (context, yelloChatDb, userdAO) => UserDao(yelloChatDb),
),
ProxyProvider<YelloChatDb, EnquiriesDao>(
update: (context, yelloChatDb, enquiriesDao) => EnquiriesDao(yelloChatDb),
),
ProxyProvider<YelloChatClient, CategoryService>(
update: (context, yelloChatClient, categoryService) =>
CategoryService.create(yelloChatClient.chopperClient),
dispose: (context, categoryService) => categoryService.client.dispose()),
ProxyProvider2<CategoryDao, CategoryService, CategoriesRepository>(
update: (context, categoryDao, categoryService, categoryRepository) =>
CategoriesRepository(categoryDao: categoryDao, categoryService: categoryService)),
ProxyProvider2<UserDao, CategoryService, UserRepository>(
update: (context, userDao, categoryService, categoryRepository)=>
UserRepository(userDao: userDao, categoryService: categoryService)
),
ProxyProvider2<SubCategoryDao, CategoryService, SubCategoriesRepository>(
update: (context, subCategoryDao, categoryService, subCategoryRepository) =>
SubCategoriesRepository(categoryDao: subCategoryDao, categoryService: categoryService)),
ProxyProvider2<EnquiriesDao, CategoryService, EnquiriesRepository>(
update: (context, enquiriesDao, categoryService, enquiriesRepository) =>
EnquiriesRepository(enquriesDao: enquiriesDao, categoryService: categoryService))
];
首先,我不建议这样做。考虑直接在您的 MultiProvider 中创建此列表。
做您当前正在做的事情会增加不必要的复杂性和仪式感,而不会带来任何实际好处。
事实上,你实际上是在降低可测试性。
如果您坚持这样做,自述文件对此非常清楚:
将 SingleChildCloneableWidget 替换为 SingleChildWidget(来自 provider/single_child_widget.dart)
来自 Provider v4.0.0
删除了 SingleChildCloneableWidget
接口,取而代之的是 SingleChildWidget
接口和两个实现:
- SingleChildStatelessWidget
- SingleChildStatefulWidget
MultiProvider
将接受 SingleChildWidget
而不是 SingleChildCloneableWidget
.
在 GitHub 中查看此 issue。
试试
import 'package:provider/single_child_widget.dart';
并替换
List<SingleChildCloneableWidget> independentServices
和
List<SingleChildWidget> independentServices
有效。我已经与依赖提供者核实过:^4.3.2+3
我更新了提供商。现在没用了
lib/di/global_providers.dart:13:6: Error: Type 'SingleChildCloneableWidget' not found. List globalProviders = [ ^^^^^^^^^^^^^^^^^^^^^^^^^^ lib/di/global_providers.dart:18:6: Error: Type 'SingleChildCloneableWidget' not found. List independentServices = [ ^^^^^^^^^^^^^^^^^^^^^^^^^^ lib/di/global_providers.dart:23:6: Error: Type 'SingleChildCloneableWidget' not found. List dependentServices = [ ^^^^^^^^^^^^^^^^^^^^^^^^^^ lib/main.dart:18:16: Error: The argument type 'List' can't be assigned to the parameter type 'List'. - 'List' is from 'dart:core'. - 'SingleChildWidget' is from 'package:nested/nested.dart' ('../../flutter/.pub-cache/hosted/pub.dartlang.org/nested-0.0.4/lib/nested.dart'). providers: globalProviders, ^ lib/di/global_providers.dart:13:6: Error: 'SingleChildCloneableWidget' isn't a type. List globalProviders = [ ^^^^^^^^^^^^^^^^^^^^^^^^^^ lib/di/global_providers.dart:18:6: Error: 'SingleChildCloneableWidget' isn't a type. List independentServices = [ ^^^^^^^^^^^^^^^^^^^^^^^^^^ lib/di/global_providers.dart:23:6: Error: 'SingleChildCloneableWidget' isn't a type. List dependentServices = [
代码
List<SingleChildCloneableWidget> globalProviders = [
...independentServices,
...dependentServices,
];
List<SingleChildCloneableWidget> independentServices = [
Provider.value(value: YelloChatDb()),
Provider.value(value: YelloChatClient()),
];
List<SingleChildCloneableWidget> dependentServices = [
ProxyProvider<YelloChatDb, CategoryDao>(
update: (context, yelloChatDb, categoryDao) => CategoryDao(yelloChatDb)),
ProxyProvider<YelloChatDb, SubCategoryDao>(
update: (context, yelloChatDb,subCategoryDao) => SubCategoryDao(yelloChatDb)),
ProxyProvider<YelloChatDb, UserDao>(
update: (context, yelloChatDb, userdAO) => UserDao(yelloChatDb),
),
ProxyProvider<YelloChatDb, EnquiriesDao>(
update: (context, yelloChatDb, enquiriesDao) => EnquiriesDao(yelloChatDb),
),
ProxyProvider<YelloChatClient, CategoryService>(
update: (context, yelloChatClient, categoryService) =>
CategoryService.create(yelloChatClient.chopperClient),
dispose: (context, categoryService) => categoryService.client.dispose()),
ProxyProvider2<CategoryDao, CategoryService, CategoriesRepository>(
update: (context, categoryDao, categoryService, categoryRepository) =>
CategoriesRepository(categoryDao: categoryDao, categoryService: categoryService)),
ProxyProvider2<UserDao, CategoryService, UserRepository>(
update: (context, userDao, categoryService, categoryRepository)=>
UserRepository(userDao: userDao, categoryService: categoryService)
),
ProxyProvider2<SubCategoryDao, CategoryService, SubCategoriesRepository>(
update: (context, subCategoryDao, categoryService, subCategoryRepository) =>
SubCategoriesRepository(categoryDao: subCategoryDao, categoryService: categoryService)),
ProxyProvider2<EnquiriesDao, CategoryService, EnquiriesRepository>(
update: (context, enquiriesDao, categoryService, enquiriesRepository) =>
EnquiriesRepository(enquriesDao: enquiriesDao, categoryService: categoryService))
];
首先,我不建议这样做。考虑直接在您的 MultiProvider 中创建此列表。
做您当前正在做的事情会增加不必要的复杂性和仪式感,而不会带来任何实际好处。 事实上,你实际上是在降低可测试性。
如果您坚持这样做,自述文件对此非常清楚:
将 SingleChildCloneableWidget 替换为 SingleChildWidget(来自 provider/single_child_widget.dart)
来自 Provider v4.0.0
删除了 SingleChildCloneableWidget
接口,取而代之的是 SingleChildWidget
接口和两个实现:
- SingleChildStatelessWidget
- SingleChildStatefulWidget
MultiProvider
将接受 SingleChildWidget
而不是 SingleChildCloneableWidget
.
在 GitHub 中查看此 issue。
试试
import 'package:provider/single_child_widget.dart';
并替换
List<SingleChildCloneableWidget> independentServices
和
List<SingleChildWidget> independentServices
有效。我已经与依赖提供者核实过:^4.3.2+3