繁体   English   中英

Flutter:未处理的异常:类型“(动态)=> void”不是“动作”类型“(字符串,动态)=> void”的子类型

[英]Flutter : Unhandled Exception: type '(dynamic) => void' is not a subtype of type '(String, dynamic) => void' of 'action'

完全错误:

`E/flutter (15265): [ERROR:flutter/lib/ui/ui_dart_state.cc(198)] 未处理的异常:类型“(动态)=> void”不是类型“(字符串,动态)=> 'action' 无效' E/flutter (15265): #0 OrderController.getOrderDetails (package:mart/controller/order_controller.dart:117:23) E/flutter (15265): E/flutter (15265): D/ViewRootImplMainActivity : windowFocusChanged hasFocus=false inTouchMode=true

错误:

Future<List<OrderDetailsModel>> getOrderDetails(String orderID) async {
    _orderDetails = null;
    _isLoading = true;
    _showCancelled = false;

    if(_trackModel == null || _trackModel.orderType != 'parcel') {
      Response response = await orderRepo.getOrderDetails(orderID);
      _isLoading = false;
      if (response.statusCode == 200) {
        _orderDetails = [];
        response.body.forEach((orderDetail) => _orderDetails.add(OrderDetailsModel.fromJson(orderDetail)));
      } else {
        ApiChecker.checkApi(response);
      }
    }else {
      _isLoading = false;
      _orderDetails = [];
    }

更新

void _loadData(BuildContext context, bool reload) async {
    await Get.find<OrderController>().trackOrder(widget.orderId.toString(), reload ? null : widget.orderModel, false);
    if(widget.orderModel == null) {
      await Get.find<SplashController>().getConfigData();
    }
    Get.find<OrderController>().getOrderDetails(widget.orderId.toString());
  }

您的问题出现在 getOrderDetails 中的 forEach 中,您的操作方式错误。您的 json 响应是 map 和 map 具有key , value属性

response.body.forEach((key, value) => _orderDetails.add(OrderDetailsModel.fromJson(value)));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM