0

我有一个颤振应用程序,它使用[flutter_wordpress]HTTPWordPress REST API v2. 一切都很棒,除了我得到“类别even after using theFutureBuilder 的实例”小部件

backend


import 'package:flutter_wordpress/flutter_wordpress.dart' as wp;
import 'package:saviortv_v2/backend/WordPressConfiguration.dart';

Future<List<wp.Category>> fetchCategories(Map<String, int> args) async {
  var categories = wordPress.fetchCategories(
    params: wp.ParamsCategoryList(
      order: wp.Order.desc,
      pageNum: args['pageNum'],
      perPage: args['perPage'],
    ),
  );
  return categories;
}

FutureBuilder


import 'package:saviortv_v2/backend/WordPressCategories.dart' as wo;

class HorizontalSlider extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return FutureBuilder(
      future: wo.fetchCategories({'perPage': 5, 'pageNum': 1}),
      builder: (context, snapshot) {
        print(snapshot.data);
        return Container(
          child: Text(snapshot.toString()),
        );
      },
    );
  }
}

这是我的调试控制台

在此处输入图像描述

这些future instances在数组中的原因是因为我的fetchCategories函数返回一个类别列表......

我该如何解决这个问题?我怎样才能显示真正的类别而不是“类别”的实例?

4

1 回答 1

1

这与期货无关。你有一个结构列表。您不只是在其上调用 toString() 并期望它神奇地转换为您想要的控件列表。你必须对其进行编程

要显示数据列表,您可以使用ListView

例如,像这样:

ListView.builder(
      itemCount: snapshot.data.length,
      itemBuilder: (context, index) => Text('${snapshot.data[index]}'),
        );

现在这只会给你一个列表,其中包含“'Category'的实例,你的工作是找出你真正想要显示的Category数据结构。也许它有一个'Name'元素?

于 2020-11-03T08:19:42.213 回答