类型“List<dynamic>”不是“函数结果”的“List<DataPoint<DateTime>>”类型的子类型

问题描述

我想要一个显示上周数据的图表。因此,我使用 bezier_chart。一切正常,但我希望显示的数据在列表中。我没有将数据直接放在 data: 中(就像在教程中一样),而是直接在 var datatest 中提供,但出现错误错误是:type 'List<dynamic>' is not a subtype of type 'List<DataPoint<DateTime>>' of 'function result'

有人知道这个问题的解决方案吗?

这是我在 BezierChart 中的代码

child: BezierChart(
    fromDate: fromDate,bezierChartScale: BezierChartScale.WEEKLY,toDate: toDate,selectedDate: toDate,series: [
       BezierLine(
         label: "Duty",onMissingValue: (dateTime) {
           return 0.0;
         },data: dataTest,),

这是我的数据测试列表:

var dataTest = [
    DataPoint<DateTime>(
        value: 10,xAxis: DateTime.Now().subtract(Duration(days: 2))),DataPoint<DateTime>(
        value: 100,xAxis: DateTime.Now().subtract(Duration(days: 3))),];

这是示例的链接https://pub.dev/packages/bezier_chart

解决方法

试试:

List<DataPoint<DateTime>> dataTest = [
    DataPoint<DateTime>(
        value: 10,xAxis: DateTime.now().subtract(Duration(days: 2))),DataPoint<DateTime>(
        value: 100,xAxis: DateTime.now().subtract(Duration(days: 3))),];

问题是 data 中的 BezierChart 参数需要 List<DataPoint<DateTime>> 但由于您将列表声明为 var List,编译器会抱怨您不强制执行可以进入您创建的列表的值的类型