Как обновить виджет после выполнения asyn c reciever? - PullRequest
0 голосов
/ 08 июля 2020

Как обновить текстовый виджет после выполнения asyn c reciever?

  //it is a stateless widget
  @override
  Widget build(BuildContext context) {
    String appName = '';

    PackageInfo.fromPlatform().then((PackageInfo packageInfo) {
      appName = packageInfo.appName;
      print('$appName');
    });

    return Column(
        children: <Widget>[
          Text('$appName'), //how to update this widget?

Ответы [ 2 ]

1 голос
/ 08 июля 2020

Используйте виджет с отслеживанием состояния и установите такое состояние

PackageInfo.fromPlatform().then((PackageInfo packageInfo) {
  setState(() {
    appName = packageInfo.appName;
  });
  print('$appName');
});
0 голосов
/ 08 июля 2020

Вы можете просто использовать FutureBuilder Виджет недели

просто оберните Text и проверьте значение снимка

 @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
       child: FutureBuilder<PackageInfo>(
         future: PackageInfo.fromPlatform(),
         builder: (context, snapshot) {
           return Text(snapshot.hasData ? snapshot.data.appName : "");
         }
       ),
      ),

    );
  }
...