gpt4 book ai didi

flutter - 从dart/flutter中的异步方法生成静态列表

转载 作者:行者123 更新时间:2023-12-03 04:23:39 26 4
gpt4 key购买 nike

这是我的initState()代码。

void initState() {
super.initState();
data = [
BarChartGroupData(
x: 0,
barsSpace: 4,
barRods: [
BarChartRodData(
color: normal,
y: 5,
borderRadius: const BorderRadius.all(Radius.zero)),
BarChartRodData(
color: normal,
y: 4,
borderRadius: const BorderRadius.all(Radius.zero))
],
),
];
}

我需要从此Future异步方法返回一个普通列表 barRods:
static Future<List<Map>> getDayList(int year, int month) async {
Database database = await DatabaseInit.openDb();
return await database.rawQuery(
'SELECT DISTINCT day FROM SalahRecord WHERE year = $year AND month = $month');
}

我如何从getDayList()返回一个普通列表

最佳答案

您不能像通常使用常规数据类型那样直接从Future中获取列表。您有3种方法可以从将来检索列表:

  • 异步/等待
  • void someFunction() async {
    List<Map> dayList = await getDayList(?, ?);
    ...
    }
  • 。然后
  • getDayList(?, ?).then((List<Map> dayList) {
    ...
    });
  • FutureBuilder(https://api.flutter.dev/flutter/widgets/FutureBuilder-class.html)
  • Future<List<Map>> dayList;

    void initState() {
    super.initState();
    data = [
    BarChartGroupData(
    x: 0,
    barsSpace: 4,
    barRods: [
    BarChartRodData(
    color: normal,
    y: 5,
    borderRadius: const BorderRadius.all(Radius.zero)),
    BarChartRodData(
    color: normal,
    y: 4,
    borderRadius: const BorderRadius.all(Radius.zero))
    ],
    ),
    ];
    dayList = getDayList(?, ?)
    }

    Widget build(BuildContext context) {
    return ...
    FutureBuilder(
    future: dayList,
    builder: (BuildContext context, AsyncSnapshot<String> snapshot) {
    ...
    }
    )
    ...
    }

    关于flutter - 从dart/flutter中的异步方法生成静态列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61118782/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com