首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SharedPreferences调用零颤振

SharedPreferences调用零颤振
EN

Stack Overflow用户
提问于 2019-03-27 09:32:27
回答 2查看 3.9K关注 0票数 5

我构建了一个函数,用于将令牌存储在共享首选项中,然后在第一次运行应用程序时从服务器获取数据。

下面的NoSuchMethodError被抛出构建AdminPage(脏,状态: AdminPageState#87bcd):flutter:方法'[]‘在null上被调用。颤振:接收器:空颤振:尝试调用:

然后应用程序就可以正常工作了

我的代码是

代码语言:javascript
复制
Future<Map<String, dynamic>> getCards(String userid) async {
  BuildContext context;
  String jWTtoken = '';
  try {
    final SharedPreferences prefs = await SharedPreferences.getInstance();

    //  prefs = await SharedPreferences.getInstance();
    jWTtoken = prefs.getString('token');
    tokenfoo();
  } catch (e) {
    Navigator.pushReplacement(
      context,
      MaterialPageRoute(builder: (BuildContext context) => AuthPage()),
    );
  }

  final Map<String, dynamic> authData = {
    'Userid': '261',
    // 'Email':_formData['Email'],
    // 'Password':_formData['Password'],
  };

  final http.Response response = await http.post(
      'hurl',
      body: json.encode(authData),
      headers: {
        'Content-Type': 'application/json',
        'Authorization': 'Bearer ' + jWTtoken
      });

  final Map<String, dynamic> responseData = json.decode(response.body);

  if (responseData["StatusCode"] == 200) {

    null;
  
  } else if (responseData["StatusCode"] == 401) {
    print(responseData);
    Logout();
  } else {
    print(responseData);
    Logout();

    null;
  }
  return responseData;
}

有什么问题吗?

在调试模式中,错误出现在以下行中

代码语言:javascript
复制
 final SharedPreferences prefs = await SharedPreferences.getInstance();

错误:

小部件库╞═══════════════════════════════════════════════════════════flutter捕获的══╡异常:下面的NoSuchMethodError被抛出构建AdminPage(脏,状态: AdminPageState#7db9a):══╡:方法'[]‘在null上被调用。颤振:接收者:空颤振:尝试调用:颤振:颤振:当异常被抛出时,这是堆栈:颤振: 0 Object.noSuchMethod (dart:core/运行时/libobject_patch.dart:50:5)颤振:#1 AdminPageState.build (软件包:idb/page/adminpage.dart:63:39)颤振: 2 (package:flutter/src/widgets/framework.dart:3809:27) StatefulElement.build颤振:#3 (package:flutter/src/widgets/framework.dart:3721:15) ComponentElement.performRebuild颤振:#4 (package:flutter/src/widgets/framework.dart:3547:5)颤振:#5 (package:flutter/src/widgets/framework.dart:3701:5)颤振:#6 (package:flutter/src/widgets/framework.dart:3848:11) StatefulElement._firstBuild颤振:#7 (package:flutter/src/widgets/framework.dart:3696:5) ComponentElement.mount颤振:#8 (package:flutter/src/widgets/framework.dart:2950:14) Element.inflateWidget颤振:#9 (package:flutter/src/widgets/framework.dart:2753:12) Element.updateChild颤振:#10 (package:flutter/src/widgets/framework.dart:3732:16) ComponentElement.performRebuild颤振:#11 (package:flutter/src/widgets/framework.dart:3547:5)颤振:#12 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2286:33)颤振:#13 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding&WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:676:20)颤振:#14 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:219:5)颤振:#15 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:990:15)颤振:#16 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:930:9)颤振:#17 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:842:5)颤振:#18 _invoke (飞镖:ui/Hooks.Dart:154:13)颤振:#19 _drawFrame (飞镖:ui/Hooks.Dart:143:3)

EN

回答 2

Stack Overflow用户

发布于 2019-06-11 18:36:53

可能是因为初始化时jwToken是空的。尝试给jwToken一个字符串值,比如"test“。

票数 1
EN

Stack Overflow用户

发布于 2021-12-22 09:54:32

创建要全局使用的全局类:

代码语言:javascript
复制
final SharedPreferences prefs = await SharedPreferences.getInstance();

static Future init() async {
    pref = await SharedPreferences.getInstance();
  }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55373832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档