'X' 的实例,即使在使用 FutureBuilder Flutter 之后

instance of 'X' even after using FutureBuilder Flutter

我有一个 flutter 应用程序,它使用 [flutter_wordpress] 包向 WordPress REST API v2 发出 HTTP 请求。一切都很好,除了我得到“Categoryeven 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 函数 returns 类别列表...

我该如何解决这个问题?如何显示真实类别而不是 'Category'?

的“实例”

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

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

例如,像这样:

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

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