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

来源:3-11 统一缓存管理框架hi_cache设计

慕函数3078794

2021-03-29

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

写回答

1回答

CrazyCodeBoy

2021-03-30


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

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
3
Elex
目前用 getInstance().get('xxx').then((value){ setState((){ Xxxx = value }); });
2021-04-03
共3条回复

Flutter高级进阶实战-仿哔哩哔哩-掌握Flutter高阶技能

一次性掌握Flutter高阶技能+商业级复杂项目架构设计与开发方案

1723 学习 · 870 问题

查看课程