错误:在提供程序包中找不到类型“SingleChildCloneableWidget”

Blo*_*oss 7 dart flutter flutter-provider

我更新了提供者。现在它不工作

lib/di/global_providers.dart:13:6: 错误:找不到类型“SingleChildCloneableWidget”。列出 globalProviders = [ ^^^^^^^^^^^^^^^^^^^^^^^^^ lib/di/global_providers.dart:18:6: 错误:找不到类型“SingleChildCloneableWidget” . 列出独立服务 = [ ^^^^^^^^^^^^^^^^^^^^^^^^^ lib/di/global_providers.dart:23:6: 错误:找不到类型“SingleChildCloneableWidget” . ListdependentServices = [ ^^^^^^^^^^^^^^^^^^^^^^^^^ lib/main.dart:18:16: 错误:参数类型'List'可以' t 分配给参数类型“列表”。-“列表”来自“dart:core”。- 'SingleChildWidget' 来自 'package:nested/nested.dart' ('../../flutter/.pub-cache/hosted/pub.dartlang.org/nested-0.0.4/lib/nested.dart' )。提供者:全球提供者,^ lib/di/global_providers.dart:13:6: 错误:“SingleChildCloneableWidget”不是一种类型。列出 globalProviders = [ ^^^^^^^^^^^^^^^^^^^^^^^^^ lib/di/global_providers.dart:18:6: 错误:'SingleChildCloneableWidget' 不是一种。列出独立服务 = [ ^^^^^^^^^^^^^^^^^^^^^^^^^ lib/di/global_providers.dart:23:6: 错误:'SingleChildCloneableWidget' 不是一种。列出依赖服务 = [ SingleChildCloneableWidget' 不是一种类型。列出依赖服务 = [ SingleChildCloneableWidget' 不是一种类型。列出依赖服务 = [

代码

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))
];
Run Code Online (Sandbox Code Playgroud)

Vin*_*ino 7

来自Provider v4.0.0

所述SingleChildCloneableWidget接口被移除,并且通过替换SingleChildWidget接口和两个实现:

  • SingleChildStatelessWidget
  • SingleChildStatefulWidget

MultiProvider将接受 aSingleChildWidget而不是SingleChildCloneableWidget

在 GitHub 中查看此问题


小智 5

尝试

import 'package:provider/single_child_widget.dart';
Run Code Online (Sandbox Code Playgroud)

并更换

List<SingleChildCloneableWidget> independentServices
Run Code Online (Sandbox Code Playgroud)

List<SingleChildWidget> independentServices
Run Code Online (Sandbox Code Playgroud)

有用。我已与依赖项提供者核实:^4.3.2+3