英文:
Api calling error while parsing the data to model class in dio flutter
问题
错误:
E/flutter (28049): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] 未处理的异常: 'package:object_mapper/src/mappable.dart': 断言失败: 第8行第12位: 'constructor != null': 在Reflection.factories中未定义RegistrationResponse
E/flutter (28049): #0 _AssertionError._doThrowNew (dart:core-patch/errors_patch.dart:51:61)
E/flutter (28049): #1 _AssertionError._throwNew (dart:core-patch/errors_patch.dart:40:5)
E/flutter (28049): #2 new Mappable (package:object_mapper/src/mappable.dart:8:12)
E/flutter (28049): #3 Mapper.toObject (package:object_mapper/src/mapper.dart:22:20)
E/flutter (28049): #4 DioClient.userRegistration (package:chavara/src/features/registration/service/registration_service.dart:20:45)
E/flutter (28049): <异步暂停>
E/flutter (28049):
I/ViewRootImpl@219a9d3MainActivity: ViewPostIme 指针 0
I/ViewRootImpl@219a9d3MainActivity: ViewPostIme 指针 1
代码:
RegistrationResponse? user;
try {
Response userData =await WebUtil.createDio().post('/User',
data:requestData);
if (kDebugMode) {
print('User Info: ${userData.data}');
}
user = Mapper.fromJson(userData.data).toObject<RegistrationResponse>();
} on DioError catch (e) { }
<details>
<summary>英文:</summary>
Error:
E/flutter (28049): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: 'package:object_mapper/src/mappable.dart': Failed assertion: line 8 pos 12: 'constructor != null': RegistrationResponse is not defined in Reflection.factories
E/flutter (28049): #0 _AssertionError._doThrowNew (dart:core-patch/errors_patch.dart:51:61)
E/flutter (28049): #1 _AssertionError._throwNew (dart:core-patch/errors_patch.dart:40:5)
E/flutter (28049): #2 new Mappable (package:object_mapper/src/mappable.dart:8:12)
E/flutter (28049): #3 Mapper.toObject (package:object_mapper/src/mapper.dart:22:20)
E/flutter (28049): #4 DioClient.userRegistration (package:chavara/src/features/registration/service/registration_service.dart:20:45)
E/flutter (28049): <asynchronous suspension>
E/flutter (28049):
I/ViewRootImpl@219a9d3[MainActivity](28049): ViewPostIme pointer 0
I/ViewRootImpl@219a9d3[MainActivity](28049): ViewPostIme pointer 1
code:
```` Future<RegistrationResponse?> userRegistration({required RegisterInfoReq requestData}) async {
RegistrationResponse? user;
try {
Response userData =await WebUtil.createDio().post('/User',
data:requestData);
if (kDebugMode) {
print('User Info: ${userData.data}');
}
user = Mapper.fromJson(userData.data).toObject<RegistrationResponse>();
} on DioError catch (e) { }
</details>
# 答案1
**得分**: 1
```
Mappable.factories = {
RegistrationResponse: () => RegistrationResponse(),
Relation: () => Relation()
};
添加了这段代码后,类的代码就正常运行了...
```
<details>
<summary>英文:</summary>
```
Mappable.factories = {
RegistrationResponse: () => RegistrationResponse(),
Relation: () => Relation()
};
After adding this code in class, the code is working fine...
</details>
# 答案2
**得分**: 0
List<RegistrationResponse> users = userData.map((userData.data) => Mapper.fromJson(data)).toList();
<details>
<summary>英文:</summary>
List<RegistrationResponse> users =
userData.map((userData.data) => Mapper.fromJson(data)).toList();
</details>
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论