Flutter学习中相关问题记录

本文记录了学习Flutter过程中遇到的三个问题:使用Getx状态管理和Dio库时的实例方法调用、Dio拦截器参数修正及Getx和Dio响应冲突的解决方法。通过实例演示和错误分析,为初学者提供宝贵的实践经验。
摘要由CSDN通过智能技术生成

Flutter学习中相关问题记录

记录在学习Flutter的过程中遇到的问题,积累宝贵的财富。

问题1

在Flutter中利用Getx来进行状态管理、路由跳转等,但是在logic类之外调用该类中的方法时报错如下:

Flutter: Instance member 'signInWithGoogle' can't be accessed using static access. (static_access_to_instance_member at )

最终参考了stackOverflow解决了问题。
之前报错时的代码:

LoginLogic.loginUserCenterAuth().then((data){})

在调用类中的方法时,应该首先创建 一个实例来调用实例方法,所以正确的写法应用如下:

LoginLogic().loginUserCenterAuth().then((data){})

问题2

Dio添加拦截器,OnRequest以及onResponse中相关报错。

The argument type 'void Function(DioError)' can't be assigned to the parameter type 'void Function(DioError, ErrorInterceptorHandler)?'

报错时的代码:

onRequest: (RequestOptions options){}

该错误查看源码也可以进行解决,也可以参考stackOverflow 。OnRequest中需要携带两个参数,正确的代码应该如下:

onRequest: (RequestOptions options, RequestInterceptorHandler handler){}

问题3

因为使用Getx进行状态管理,使用dio进行HTTP请求,它们都有response类,所以会造成冲突,参考解决方法

The name 'Response' is defined in the libraries 'package:dio/src/response.dart (via package:dio/dio.dart)' and 'package:get/get_connect/http/src/response/response.dart'. 

解决方法:即修改get的引入方式:

import 'package:get/get.dart' hide Response;
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值