请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

虽然PreInit了,还是有可能会导致set值的时候sharedPreferences为空啊?

如果PreInit要花很长时间,虽然提前了init,set不是还是有可能会为空吗

正在回答

插入代码

1回答


是的,课程后面会用FutureBuilderl来等HiCache.preInit()初始化完成后在进行下一步操作:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class _BiliAppState extends State<BiliApp> {
  BiliRouteDelegate _routeDelegate = BiliRouteDelegate();
 
  @override
  Widget build(BuildContext context) {
    return FutureBuilder<HiCache>(
        //进行初始化
        future: HiCache.preInit(),
        builder: (BuildContext context, AsyncSnapshot<HiCache> snapshot) {
          //定义route
          var widget = snapshot.connectionState == ConnectionState.done
              ? Router(routerDelegate: _routeDelegate)
              : Scaffold(
                  body: Center(child: CircularProgressIndicator()),
                );
 
          return MaterialApp(
            home: widget,
            theme: ThemeData(primarySwatch: white),
          );
        });
  }
}


0 回复 有任何疑惑可以回复我~
  • 提问者 慕函数3078794 #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2021-03-30 11:10:13
  • Elex #2
    用了FutureBuilder,在builder 里面getInstance().get("xxx").依然报错:
    
    The method 'get' was called on null.
    Receiver: null
    Tried calling: get("xxxx")
    回复 有任何疑惑可以回复我~ 2021-04-03 11:29:51
  • Elex #3
    目前用 getInstance().get('xxx').then((value){
    setState((){
    Xxxx = value
    });
    });
    回复 有任何疑惑可以回复我~ 2021-04-03 16:20:42
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号