Flutter 未处理的异常:类型';列表<;动态>';不是类型为';地图<;字符串,动态>';关于粘性颤振
我想将列表视图从TextFormField显示到其他页面 但是日志中的结果是这样说的Flutter 未处理的异常:类型';列表<;动态>';不是类型为';地图<;字符串,动态>';关于粘性颤振,flutter,Flutter,我想将列表视图从TextFormField显示到其他页面 但是日志中的结果是这样说的 E/flutter ( 9872): [ERROR:flutter/lib/ui/ui_dart_state.cc(199)] Unhandled Exception: type 'List<dynamic>' is not a subtype of type 'Map<String, dynamic>' E/flutter ( 9872): #0 LoanResult.sim
E/flutter ( 9872): [ERROR:flutter/lib/ui/ui_dart_state.cc(199)] Unhandled Exception: type 'List<dynamic>' is not a subtype of type 'Map<String, dynamic>'
E/flutter ( 9872): #0 LoanResult.simulator (package:fluttermysql/models/LoanSimulationModel.dart:62:35)
E/flutter ( 9872): <asynchronous suspension>
E/flutter ( 9872): #1 _LoanSimulationState.result (package:fluttermysql/view/LoanSimulation.dart:29:5)
E/flutter ( 9872): <asynchronous suspension>
E/flutter ( 9872):
下面是React Native的示例
如何使用列表获得此结果?谢谢
jsonDecode(response.body)
正在返回一个列表
。可能它是一个包含单个元素的词典列表(您可以通过打印其内容来确保这一点),但如果是这样,您可以使用jsonDecode(response.body).single
。不。此数据来自数组,因此其返回未经处理的异常:错误状态:元素太多E/flatter(19540):#0 List.single(dart:core patch/growtable_array.dart:343:5)是否尝试打印响应。body
正在返回并分析要从中获取的元素<代码>jsonDecode(response.body)[0]会起作用,但我不确定这是否是您所期望的。结果应该是这样的:“否”:0,“利息”:“0.00”,“余额”:“10000000.00”,“本金”:“0.00”,“分期付款”:“0.00”,“状态”:trueWhatresponse.body
返回?
static Future<LoanResult> simulator({String periodtime, String interestpermonth, String loanamountrequest, String idUser, String url}) async {
var url = "http://192.168.0.23/Api/loansimulation.php?periodtime=" + periodtime + "&interestpermonth=" + interestpermonth + "&loanamountrequest=" +loanamountrequest;
final response = await http.get(url,headers:{"Content-Type":
"application/json"});
var res = LoanResult.fromJson(jsonDecode(response.body));
return res;
}
void result() async {
LoanResult loanResult;
await LoanResult.simulator(
periodtime: periodtime,
interestpermonth: interestpermonth,
loanamountrequest: loanamountrequest,
url: BaseURL.kLoanSimulationUrl)
.then((value) => loanResult = value);
print(loanResult.Status);
if (loanResult.Status == true) {
Text(loanResult.message);
Navigator.pushReplacementNamed(context, Simulator.id);
} else {
_scaffoldKey.currentState.showSnackBar(SnackBar(
content: Text(loanResult.message),
duration: Duration(seconds: 3),
));
}
}