Flutter dio http get error ArgumentError(无效参数)(输入):不能为null)颤振
我这里有个错误,可能是什么问题 if(input==null)抛出新ArgumentError.notNull('input'); ArgumentError(无效参数)(输入):不能为nullFlutter dio http get error ArgumentError(无效参数)(输入):不能为null)颤振,flutter,dart,dio,Flutter,Dart,Dio,我这里有个错误,可能是什么问题 if(input==null)抛出新ArgumentError.notNull('input'); ArgumentError(无效参数)(输入):不能为null 有人能帮我吗 尝试使用DioFlatter软件包时,遇到了get呼叫的问题,我在某个地方丢失了,不确定是什么问题 国家管理局是弗利特河堡 服务文件: Future<List<DefaultModel>> getDefaults() async { try { final re
有人能帮我吗 尝试使用DioFlatter软件包时,遇到了get呼叫的问题,我在某个地方丢失了,不确定是什么问题 国家管理局是弗利特河堡 服务文件:
Future<List<DefaultModel>> getDefaults() async {
try {
final response =
await _dio.get("https://5f279ddaf5d27e001612e29b.mockapi.io/Default");
print(response);
if (response.statusCode == 200) {
final results = List<Map<String, dynamic>>.from(response.data);
List<DefaultModel> defaults = results
.map((defaulteData) => DefaultModel.fromMap(defaulteData))
.toList(growable: false);
return defaults;
} else {
return null;
}
} on DioError catch (e) {
throw GeneralException.fromDioError(e);
}
}
import 'dart:convert';
class DefaultModel {
String id;
DateTime createdAt;
String description;
String memberId;
String departmentId;
String reason;
String taskPriority;
String impactToMission;
String stepsToAvoid;
DateTime defaultDate;
DateTime updatedDate;
String hodPrayschit;
String hodComments;
DateTime hodDefaultDeadline;
DateTime sevakAcknowledgeDate;
String hodId;
String hrdComments;
String maulikjiComments;
String cardType;
DateTime startDate;
DateTime endDate;
DefaultModel(
{this.id,
this.createdAt,
this.description,
this.memberId,
this.departmentId,
this.reason,
this.taskPriority,
this.impactToMission,
this.stepsToAvoid,
this.defaultDate,
this.updatedDate,
this.hodPrayschit,
this.hodComments,
this.hodDefaultDeadline,
this.sevakAcknowledgeDate,
this.hodId,
this.hrdComments,
this.maulikjiComments,
this.cardType,
this.startDate,
this.endDate});
Map<String, dynamic> toMap() {
return {
'id': id,
'createdAt': createdAt.toString(),
'description': description,
'memberId': memberId,
'departmentId': departmentId,
'reason': reason,
'taskPriority': taskPriority,
'impactToMission': impactToMission,
'stepsToAvoid': stepsToAvoid,
'defaultDate': defaultDate.toString(),
'updatedDate': updatedDate.toString(),
'hodPrayschit': hodPrayschit,
'hodComments': hodComments,
'hodDefaultDeadline': hodDefaultDeadline.toString(),
'sevakAcknowledgeDate': sevakAcknowledgeDate.toString(),
'hodId': hodId,
'hrdComments': hrdComments,
'maulikjiComments': maulikjiComments,
'cardType': cardType,
'startDate': startDate.toString(),
'endDate': endDate.toString(),
};
}
factory DefaultModel.fromMap(Map<String, dynamic> map) {
if (map == null) return null;
return DefaultModel(
id: map['id'],
createdAt: DateTime.parse(map['created']),
description: map['description'],
memberId: map['memberId'],
departmentId: map['departmentId'],
reason: map['reason'],
taskPriority: map['taskPriority'],
impactToMission: map['impactToMission'],
stepsToAvoid: map['stepsToAvoid'],
defaultDate: DateTime.parse(map['defaultDate']),
updatedDate: DateTime.parse(map['updatedDate']),
hodPrayschit: map['hodPrayschit'],
hodComments: map['hodComments'],
hodDefaultDeadline: DateTime.parse(map['hodDefaultDeadline']),
sevakAcknowledgeDate: DateTime.parse(map['sevakAcknowledgeDate']),
hodId: map['hodId'],
hrdComments: map['hrdComments'],
maulikjiComments: map['maulikjiComments'],
cardType: map['cardType'],
startDate: DateTime.parse(map['startDate']),
endDate: DateTime.parse(map['endDate']),
);
}
String toJson() => json.encode(toMap());
List<DefaultModel> defaultFromJson(String jsonData) {
final data = json.decode(jsonData);
return List<DefaultModel>.from(
data.map((item) => DefaultModel.fromJson(item)));
}
factory DefaultModel.fromJson(String source) =>
DefaultModel.fromMap(json.decode(source));
}
Future getDefaults()异步{
试一试{
最后答复=
等待"得到"https://5f279ddaf5d27e001612e29b.mockapi.io/Default");
打印(回复);
如果(response.statusCode==200){
最终结果=List.from(response.data);
列表默认值=结果
.map((defaulteData)=>DefaultModel.fromMap(defaulteData))
.toList(可增长:假);
返回默认值;
}否则{
返回null;
}
}关于错误捕获(e){
抛出GeneralException.fromDioError(e);
}
}
添加模型文件:
Future<List<DefaultModel>> getDefaults() async {
try {
final response =
await _dio.get("https://5f279ddaf5d27e001612e29b.mockapi.io/Default");
print(response);
if (response.statusCode == 200) {
final results = List<Map<String, dynamic>>.from(response.data);
List<DefaultModel> defaults = results
.map((defaulteData) => DefaultModel.fromMap(defaulteData))
.toList(growable: false);
return defaults;
} else {
return null;
}
} on DioError catch (e) {
throw GeneralException.fromDioError(e);
}
}
import 'dart:convert';
class DefaultModel {
String id;
DateTime createdAt;
String description;
String memberId;
String departmentId;
String reason;
String taskPriority;
String impactToMission;
String stepsToAvoid;
DateTime defaultDate;
DateTime updatedDate;
String hodPrayschit;
String hodComments;
DateTime hodDefaultDeadline;
DateTime sevakAcknowledgeDate;
String hodId;
String hrdComments;
String maulikjiComments;
String cardType;
DateTime startDate;
DateTime endDate;
DefaultModel(
{this.id,
this.createdAt,
this.description,
this.memberId,
this.departmentId,
this.reason,
this.taskPriority,
this.impactToMission,
this.stepsToAvoid,
this.defaultDate,
this.updatedDate,
this.hodPrayschit,
this.hodComments,
this.hodDefaultDeadline,
this.sevakAcknowledgeDate,
this.hodId,
this.hrdComments,
this.maulikjiComments,
this.cardType,
this.startDate,
this.endDate});
Map<String, dynamic> toMap() {
return {
'id': id,
'createdAt': createdAt.toString(),
'description': description,
'memberId': memberId,
'departmentId': departmentId,
'reason': reason,
'taskPriority': taskPriority,
'impactToMission': impactToMission,
'stepsToAvoid': stepsToAvoid,
'defaultDate': defaultDate.toString(),
'updatedDate': updatedDate.toString(),
'hodPrayschit': hodPrayschit,
'hodComments': hodComments,
'hodDefaultDeadline': hodDefaultDeadline.toString(),
'sevakAcknowledgeDate': sevakAcknowledgeDate.toString(),
'hodId': hodId,
'hrdComments': hrdComments,
'maulikjiComments': maulikjiComments,
'cardType': cardType,
'startDate': startDate.toString(),
'endDate': endDate.toString(),
};
}
factory DefaultModel.fromMap(Map<String, dynamic> map) {
if (map == null) return null;
return DefaultModel(
id: map['id'],
createdAt: DateTime.parse(map['created']),
description: map['description'],
memberId: map['memberId'],
departmentId: map['departmentId'],
reason: map['reason'],
taskPriority: map['taskPriority'],
impactToMission: map['impactToMission'],
stepsToAvoid: map['stepsToAvoid'],
defaultDate: DateTime.parse(map['defaultDate']),
updatedDate: DateTime.parse(map['updatedDate']),
hodPrayschit: map['hodPrayschit'],
hodComments: map['hodComments'],
hodDefaultDeadline: DateTime.parse(map['hodDefaultDeadline']),
sevakAcknowledgeDate: DateTime.parse(map['sevakAcknowledgeDate']),
hodId: map['hodId'],
hrdComments: map['hrdComments'],
maulikjiComments: map['maulikjiComments'],
cardType: map['cardType'],
startDate: DateTime.parse(map['startDate']),
endDate: DateTime.parse(map['endDate']),
);
}
String toJson() => json.encode(toMap());
List<DefaultModel> defaultFromJson(String jsonData) {
final data = json.decode(jsonData);
return List<DefaultModel>.from(
data.map((item) => DefaultModel.fromJson(item)));
}
factory DefaultModel.fromJson(String source) =>
DefaultModel.fromMap(json.decode(source));
}
导入'dart:convert';
类默认模型{
字符串id;
创建日期时间;
字符串描述;
字符串成员ID;
字符串departmentId;
字符串原因;
字符串优先级;
弦冲击断丝;
避免串级;
日期时间默认日期;
日期时间更新日期;
串珠岩;
串珠;
日期时间和截止日期;
日期时间七确认;
弦豪德;
字符串HRD注释;
字符串maulikji注释;
字符串卡片类型;
日期时间开始日期;
日期时间结束日期;
默认模型(
{this.id,
这个.createdAt,
这个.说明,,
这个.memberId,
这个.部门ID,
这个原因,,
这是一个优先事项,
这是我的使命,
这是我们要避免的,
这个日期,
这是最新的日期,
这是hodPrayschit,
这是我的建议,
这是最后期限,
这是我承认的,
这个,霍德,
这是我的建议,
这是莫利基的评论,
这个.卡片类型,
这个,开始日期,
此参数为.endDate});
映射toMap(){
返回{
“id”:id,
“createdAt”:createdAt.toString(),
“描述”:描述,
“memberId”:memberId,
“部门ID”:部门ID,
"理性":理性,,
“taskPriority”:taskPriority,
“impactToMission”:impactToMission,
“stepsToAvoid”:stepsToAvoid,
“defaultDate”:defaultDate.toString(),
'UpdateDate':UpdateDate.toString(),
“hodPrayschit”:hodPrayschit,
“hodComments”:hodComments,
“hodDefaultDeadline”:hodDefaultDeadline.toString(),
“sevakackknowledgedate”:sevakackknowledgedate.toString(),
“hodId”:hodId,
“HRD注释”:HRD注释,
“maulikjiComments”:maulikjiComments,
“cardType”:cardType,
“startDate”:startDate.toString(),
“endDate”:endDate.toString(),
};
}
factory DefaultModel.fromMap(映射){
if(map==null)返回null;
返回默认模型(
id:map['id'],
createdAt:DateTime.parse(映射['created']),
描述:地图['description'],
memberId:map['memberId'],
部门ID:map['departmentId'],
原因:映射['reason'],
taskPriority:map['taskPriority'],
impactToMission:map['impactToMission'],
stepsToAvoid:map['stepsToAvoid'],
defaultDate:DateTime.parse(映射['defaultDate']),
UpdateDate:DateTime.parse(映射['UpdateDate']),
hodPrayschit:map['hodPrayschit'],
hodComments:map['hodComments'],
HoddeFaultDailate:DateTime.parse(映射['HoddeFaultDailate']),
sevakackknowledgedate:DateTime.parse(映射['sevakackknowledgedate']),
hodId:map['hodId'],
hrdComments:map['hrdComments'],
maulikjiComments:map['maulikjiComments'],
cardType:map['cardType'],
startDate:DateTime.parse(映射['startDate']),
endDate:DateTime.parse(映射['endDate']),
);
}
字符串toJson()=>json.encode(toMap());
列表defaultFromJson(字符串jsonData){
最终数据=json.decode(jsonData);
返回列表。从(
data.map((item)=>DefaultModel.fromJson(item));
}
factory DefaultModel.fromJson(字符串源)=>
DefaultModel.fromMap(json.decode(源));
}
Page.dart
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/all.dart';
import 'package:srmd_timesheet_flutter_app/models/default_model.dart';
import 'package:srmd_timesheet_flutter_app/utils/exception.dart';
import 'package:srmd_timesheet_flutter_app/widgets/app_bar_widget.dart';
import 'package:srmd_timesheet_flutter_app/widgets/badge_layout_widget.dart';
import 'package:srmd_timesheet_flutter_app/services/default_service.dart';
import 'package:srmd_timesheet_flutter_app/widgets/error_body_widget.dart';
final defaultFutureProvider =
FutureProvider.autoDispose<List<DefaultModel>>((ref) async {
ref.maintainState = true;
final defaultService = ref.watch(defaultServiceProvider);
final prayschits = await defaultService.getDefaults();
return prayschits;
});
class AllDefaultPage extends ConsumerWidget {
final String yellowCard = "yellow-card@3x.png";
final String redCard = "red-card@3x.png";
@override
Widget build(BuildContext context, ScopedReader watch) {
return Scaffold(
appBar: MyAppBar(
context,
titleText: "PAST DEFAULTS",
isChipLayout: false,
),
body: watch(defaultFutureProvider).when(
error: (e, s) {
if (e is GeneralException) {
return ErrorBody(message: e.message);
}
return ErrorBody(message: "Oops, something unexpected happened");
},
loading: () => Center(
child: CircularProgressIndicator(),
),
data: (prayschits) {
return RefreshIndicator(
onRefresh: () {
return context.refresh(defaultFutureProvider);
},
child: SingleChildScrollView(
child: Padding(
padding: const EdgeInsets.all(22.0),
child: Container(
child: Column(
children: prayschits
.map((prayschit) => BadgeLayout(cardImage: redCard))
.toList(),
),
),
),
),
);
},
),
);
}
}
// SizedBox(height: 18.0),
导入“包装:颤振/材料.省道”;
进口“包装:颤振_riverpod/all.dart”;
导入“package:srmd_timesheet_flatter_app/models/default_model.dart”;
导入“package:srmd_timesheet_flatter_app/utils/exception.dart”;
导入“package:srmd_timesheet_flatter_app/widgets/app_bar_widget.dart”;
导入“package:srmd_timesheet_flatter_app/widgets/badge_layout_widget.dart”;
导入“package:srmd_timesheet_flatter_app/services/default_service.dart”;
导入“package:srmd_timesheet_flatter_app/widgets/error_body_widget.dart”;
最终defaultFutureProvider=
FutureProvider.autoDispose((ref)异步{
ref.maintaintState=true;
最终defaultService=ref.watch(defaultServiceProvider);
final prayschits=wait defaultService.getDefaults();
返回prayschits;
});
类AllDefaultPage扩展了ConsumerWidget{
最终字符串yellowCard=“黄色-card@3x.png";
最终字符串redCard=“红色-card@3x.png";
@凌驾
小部件构建(BuildContext上下文,ScopeDrawer监视){
返回脚手架(
appBar:MyAppBar(
上下文
titleText:“过去的默认值”,
isChipLayout:false,
),
正文:手表(defaultFutureProvider)。何时(
错误:(e,s){
if(e为一般例外){
返回ErrorBody(消息:e.message);
}
返回ErrorBody(消息:“哦,发生了意外的事情”);
},
加载:()=>中心(
子对象:CircularProgressIndicator(),
),
数据:(prayschits){
返回刷新指示器(
onRefresh:(){
返回context.refresh(defaultFutureProvider);
},
子:SingleChildScrollView(