繁体   English   中英

Flutter - 将数据从未来变量(sqlite)传递到小部件

[英]Flutter - Pass data from a Future variable(sqlite) to a widget

我对 Flutter 和 Dart 非常陌生,但我正在尝试从 sqlite 方法获取数据并将其作为参数传递给新的小部件。 我试过使用 FutureBuilder 并没有帮助。

我正在调用加载数据的方法,等待数据 in.then() 然后在里面设置 class 变量的 state 稍后分配给小部件,但变量 _records 始终是 Z37A6259CC0C1DAE299A786648 之后

Below is my code

int initScreen;

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  SharedPreferences prefs = await SharedPreferences.getInstance();
  initScreen = await prefs.getInt("initScreen");


  await prefs.setInt("initScreen", 1);

  runApp(MyApp());
}


class MyApp extends StatefulWidget {

  @override
  MyAppState createState() => MyAppState();
}

class MyAppState  extends State{

  List<Quarter> _records;

  @override
  void initState() {
    _getRecords();

    super.initState();


  }
  _getRecords() async {
    await QuarterData().getQuarters().then((list){
      setState((){
        this. _records = list;
      });
    });
    return list;


  }


  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        title: 'UI',
        debugShowCheckedModeBanner: false,
        home:  initScreen == 0 || initScreen == null
                  ? SpashScreen(this._records)
                  : QuartersHome(this._records)

               );

  }
}

非常感谢

this._records未初始化,将是 null 直到您的查询未完成。

您需要检查它是否不是 null 在返回您的小部件之前(就像您使用initScreen

如果在setState()方法之后您的变量仍然是 null,那么可能是您的查询返回 null。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM