тип Future <dynamic> не является подтипом типа ApplicationMeta

Я получаю эту ошибку «Тип Future» не является подтипом типа «ApplicationMeta». Создаю платежную функцию. тип платежной функции - будущее <Список>. Эта функция возвращает в список installedUpiapps. Мне нужно передать аргумент appWidget. Но я получаю эту ошибку «Тип Future» не является подтипом типа «ApplicationMeta».

      import 'package:flutter/material.dart';
import 'package:upi_pay/upi_pay.dart';

class Homes extends StatelessWidget {
  payment() async {
  var appMetaList = await UpiPay.getInstalledUpiApplications();
    return appMetaList;
  }

  Widget appWidget(ApplicationMeta appMeta) {
   return Column(
     mainAxisAlignment: MainAxisAlignment.center,
     children: <Widget>[
     appMeta.iconImage(48), // Logo
      Container(
      margin: EdgeInsets.only(top: 4),
      alignment: Alignment.center,
      child: Text(
        appMeta.upiApplication.getAppName(),
        textAlign: TextAlign.center,
      ),
    ),
  ],
);
 }

@override
 Widget build(BuildContext context) {
   ApplicationMeta as = payment();
   return appWidget(as);
 }
}

1 ответ

Как только вы добавите возвращаемый тип в метод, вы должны увидеть ошибку компиляции.

payment является async, поэтому он возвращает Future. Чтобы создать с ним виджет, вы должны использовать FutureBuilderкак описано здесь https://api.flutter.dev/flutter/widgets/FutureBuilder-class.html

      FutureBuilder<List<ApplicationMeta>>(
  future: as
  builder: (context, snapshot) {
    // your widgets go here
  }
)

Что касается отображения списка ApplicationMeta, взгляните на это:

Другие вопросы по тегам