当前位置: 首页 > 知识库问答 >
问题:

“\u InternalLinkedHashMap”不是类型转换中“Map”类型的子类型

养学
2023-03-14

我有这个通用函数:

  ValueType get<ValueType>(String keyToRead) {
    try {
      return _dataClient.get(keyToRead) as ValueType;
    } on SocketException catch (error) {...

我这样称呼它:

  @override
  Map<String, dynamic> getUserRegistration() {
    return dataClient.get<Map<String, dynamic>>(UserRegistrationFieldKeys.self);
  }

但是,由于我将使用get_存储框作为我的_数据客户端,改为使用配置单元框,因此出现以下错误:

The following ProviderException was thrown building LoggedOutPageView(dirty, dependencies: [UncontrolledProviderScope], state: _ConsumerState#6c90b):
An exception was thrown while building AutoDisposeProvider<RegisterViewModel>#00006().

Thrown exception:
type '_InternalLinkedHashMap<dynamic, dynamic>' is not a subtype of type 'Map<String, dynamic>' in type cast

Stack trace:
#0      LocalDataClient.get
package:vepo/…/data_clients/local_data_client.dart:51
#1      UserRegistrationLocalDataSource.getUserRegistration
package:vepo/…/user_registration/user_registration_local_data_source.dart:22
#2      UserRegistrationRepository.getUserRegistration
package:vepo/…/user-registration/user_registration_repository.dart:31

配置单元必须以不同的格式存储数据,这可能是由于加密造成的,但如何解释这一点并消除此错误?

共有3个答案

窦夜洛
2023-03-14

你可以试试这个:

Map<String, dynamic> map = yourHiveBox.get("key").cast<String, dynamic>();
韩晋
2023-03-14

这是因为您的_dataClient.get(keyToRead)函数返回一个_InternalLinkedHashMap

在这种情况下,您应该在获得该函数的输出后进行类型转换,例如:

 @override
  Map<String, dynamic> getUserRegistration() {
    return Map<String, dynamic>.from(dataClient.get(UserRegistrationFieldKeys.self));
  }

魏鹤轩
2023-03-14

尝试使用

Map<String, dynamic>.from(dataClient.get(UserRegistrationFieldKeys.self))`;

如果你使用这个,你也可以删除泛型函数。

 类似资料:
  • 当我点击我的颤振应用程序中的一个按钮时,我出现了一个错误。这里有人有解决方案吗?! 路线 争论 还有地图 完全错误 生成CategoryMalsScreen(脏,依赖项:[[U ModalScopeStatus],状态:[U CategoryMalsScreenState]时引发了以下错误:类型“String”不是类型“Map”的子类型 导致错误的相关小部件是:CategoryMalsScreen

  • 我正在开发一个依靠API REST调用的flutter应用程序。来自API的响应有点复杂。当调用我的API(例如:api/产品)时,我可以从日志中看到响应:但是我有这个错误: 类型列表 StackTrace: [更新]:退货产品响应。fromJson(response)而不是response ProductsRespository: ProductsBloc: 回应: ApiProvider: 模

  • 当我运行我的代码时,它返回了错误:类型“Future”不是类型转换中“List”类型的子类型。我该如何修复它?它是在我从Firebase获取数据之前匹配引擎运行的?我试图将wait添加到List demoProfiles=getdata()作为wait List;但它返回错误。我真的是新手,这个问题已经困扰了我一整天。请帮帮我

  • 我有错误从标题时试图这样做 > 我创建了@JsonSerialiazable()类来处理json 然后,在调用http时。get(),我执行以下操作: map变量如下所示: 当调用$MyResponseFromJson(json)时,当它试图从我的响应中执行(json['a']as List)时,它会给出一个错误。g、 构建运行程序生成的dart文件。 我如何修复错误? 谢啦

  • 我对flatter是个新手,我想呈现一个ListView。但是我犯了一个错误。 我有3个模型课: 主题、主题和内容。 这是模型文件: 这是文件: 问题出现在。 错误消息是:

  • 我试图在Dart中反序列化一个非常复杂的JSON,但是我不知道出了什么问题。 当它尝试反序列化时,它向我显示了以下错误:“type'\u InternalLinkedHashMap” 有人知道发生了什么事吗? 这是我的密码: