首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >GetStorage总是在颤振中返回null

GetStorage总是在颤振中返回null
EN

Stack Overflow用户
提问于 2021-07-05 15:40:29
回答 3查看 1.9K关注 0票数 1

代码

代码语言:javascript
运行
复制
    print("Before : ${GetStorage().read("XXX")}");
    GetStorage().write("XXX", 1);
    print("After : ${GetStorage().read("XXX")}");

这是我的密码。每次运行该应用程序时,输出都是

以前的:空

后: 1

为什么每次我重新启动应用程序时都会清除存储数据?我认为这是SharedPreference的另一种选择,后者工作得很好。我错过了什么吗?

EN

Stack Overflow用户

发布于 2022-02-24 19:09:16

代码语言:javascript
运行
复制
final _userBox = () => GetStorage('User');

class UserPref {

    void call(){
        _userBox.call()..initStorage;
    }

    dynamic setValueInt(String key, int value) {
        return 0.val(key, getBox: _userBox).val = value;
    }

    String setValue(String key, String value) {
        return ''.val(key, getBox: _userBox).val = value;
    }

    dynamic getValueInt(String key) {
        return (-1).val(key,getBox: _userBox).val;
    }

    dynamic getValue(String key) {
        return ''.val(key,getBox: _userBox).val;
    }

    void setUser(User user) {
        ''.val('uname', getBox: _userBox).val = user.uname ?? '';
        (-1).val('gender', getBox: _userBox).val = user.gender ?? -1;
        ''.val('born', getBox: _userBox).val = user.born.toString();
        true.val('enabled', getBox: _userBox).val = user.enabled ?? true;
    }

    User getUser() {
        final String? uname = ''.val('uname',getBox: _userBox).val;
        final int? gender = (-1).val('gender',getBox: _userBox).val;
        final DateTime? born = ''.val('born',getBox: _userBox).val == '' ? null : DateTime.parse(''.val('born',getBox: _userBox).val);
        final bool? enabled = true.val('enabled',getBox: _userBox).val;

        return User(
            uname: uname,
            gender: gender,
            born: born,
            enabled: enabled,
        );
    }
}

///INIT:
@override
void initState() {
    //The init function must be written separately from the read/write function due to being asynchronous. 
    UserPref().call();
}

//OR

Future<void> main() async {
    //await GetStorage.init();
    UserPref().call();
}


///USAGE:

class MyStatefulWidget extends StatefulWidget {
    final Users prefUser = UserPref().getUser();
...
}

//OR

 @override
 Widget build(BuildContext context) {
    final Users prefUser = UserPref().getUser();
    return ...;
 }
票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68258768

复制
相关文章

相似问题

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