相关疑难解决方法(0)

如何在 initState 中等待异步

我有一个异步函数,需要在有状态小部件的 initState 中调用,但我不能使用 await,因为 initState 不是异步的。

sendHealthDataasync因为它从 Health Api 获取一些信息,然后我需要将该信息发送到 HomeSubScreen,这是另一个StatefulWidget. 但是在创建 HomeSubScreen 时,该sendHealthData方法没有获取所有信息,因此如果我尝试将参数中的某个值发送到HomeSubScreen,则该值将为空。

我怎样才能做到这一点?

@override
  void initState() {
    super.initState();
    sendHealthData();
    _widgetOptions = <Widget>[
      HomeSubScreen(healthData),
    ];

  }
Run Code Online (Sandbox Code Playgroud)

更新:如果我添加了 then() 我会收到以下错误:

NoSuchMethodError: The method 'elementAt' was called on null.
Run Code Online (Sandbox Code Playgroud)

代码更新:

@override
      void initState() {
        super.initState();
        sendHealthData().then((response){
             _widgetOptions = <Widget>[
                 HomeSubScreen(healthData),
              ];
        });


      }
Run Code Online (Sandbox Code Playgroud)

flutter

9
推荐指数
3
解决办法
7101
查看次数

在“initState”内或在类定义下方初始化变量?

我想知道当我知道StateFlutter中类中变量的初始值时,我应该使用变量定义还是内部来初始化它initState方法。什么更好,为什么?

第一种方法:

class _SampleState extends State<Sample> {
  String _foo = 'FOO';

  @override
  void initState() {
    // Do some other stuff
    super.initState();
  }

  ...
}
Run Code Online (Sandbox Code Playgroud)

第二种方法:

class _SampleState extends State<Sample> {
  String _foo;

  @override
  void initState() {
    _foo = 'FOO';
    // Do some other stuff
    super.initState();
  }

  ...
}
Run Code Online (Sandbox Code Playgroud)

dart flutter

5
推荐指数
1
解决办法
589
查看次数

标签 统计

flutter ×2

dart ×1