flustars icon indicating copy to clipboard operation
flustars copied to clipboard

SpUtil 在第一个页面可以正常存取,跳转页面_prefs后为null

Open liyunfu opened this issue 4 years ago • 9 comments

liyunfu avatar Oct 15 '20 08:10 liyunfu

1.在登录页面存下用户信息, 2.然后跳转到首页可以正常获取, 3.再从首页跳转到用户详情页,_prefs为null

liyunfu avatar Oct 15 '20 08:10 liyunfu

回到首页,仍然可以正常获取

liyunfu avatar Oct 15 '20 08:10 liyunfu

发下代码吧

:octocat: From gitme Android

Sky24n avatar Oct 15 '20 09:10 Sky24n

初始化部分 void main() async { WidgetsFlutterBinding.ensureInitialized(); await SpUtil.getInstance();

登录成功保存 SpUtil.putString(SPKey.USER_INFO, json.encode(data));

跳转首页 Navigator.pushReplacementNamed(context, RouteUtil.INDEX_PAGE);

首页正常读取 @override void initState() { super.initState();

_userStr = SpUtil.getString(SPKey.USER_INFO);

_userInfo = JsonUtil.getObj(_userStr, (v) => UserInfo.fromJson(v));

}

跳转个人中心 Navigator.pushNamed(context, RouteUtil.USER_INFO_PAGE)

个人中心读取 @override void initState() { super.initState(); String userStr = SpUtil.getString(SPKey.USER_INFO);

}

liyunfu avatar Oct 15 '20 09:10 liyunfu

没有做什么特殊的操作,读取的方式也一样的

liyunfu avatar Oct 15 '20 09:10 liyunfu

你发个简单的demo到我邮箱,[email protected]

:octocat: From gitme Android

Sky24n avatar Oct 15 '20 10:10 Sky24n

另外SpUtil是支持存取Object的。 SpUtil.putObject("loc_city", city); City hisCity = SpUtil.getObj("loc_city", (v) => City.fromJson(v));

Sky24n avatar Oct 15 '20 13:10 Sky24n

刚才demo写好了,但是没有出问题,我又检查了一下我的项目。发现原因是因为一键导包的时候ide 自己分成了两种方式导包。 import 'file:///D:/FlutterProjects/flutter_test/lib/common/sp_util.dart'; import 'package:flutter_test/utils/sp_util.dart';

liyunfu avatar Oct 16 '20 02:10 liyunfu

还是非常感谢

liyunfu avatar Oct 16 '20 02:10 liyunfu