无法填充 fl_charts 中的点数组

Unable to fill spots array in fl_charts

我在 flutter 中使用 fl_charts,似乎无法用连续数据填充 spots 数组。我的数据不断来自 Firebase 的实时数据库,我尝试将数组的状态设置为等于 FlSpot 类型的元素,如下所示。

var temp_arr = [];
setState(() { 
  for(int i = 0; i<tempList.length;i++) {
      temp_arr[i] = FlSpot((i*1.0), double.parse(tempList[i].humidity))
    }

});

然后当我尝试这样做时 spots:temp_arr

final LineChartBarData lineChartBarData2 = LineChartBarData(
  
    spots: temp_arr
...

我会收到一条错误消息,提示找不到范围。您认为我很接近还是有更好的方法来用动态数据填充我们的图表?

我发现了如何提供实时数据。目前正在研究如何修复范围。

List<FlSpot> gatherWeightData(){
    List<FlSpot> spotWeightList = [];
    List<FlSpot> removedSpotWeightList = [];
    for (int i = 0; i < weightList.length; i++) {
      spotWeightList.add(FlSpot((i * 1.0), double.parse(weightList[i].hive_weight)));
      if (spotWeightList.length >= 19) {
        spotWeightList.removeAt(0);
        removedSpotWeightList = spotWeightList;
        return removedSpotWeightList;
      }
    }
    return spotWeightList;
  }

我们在这里创建一个 FlSpot 类型的列表并添加 (x,y) 所需的值,然后我让 spots 等于创建这些列表的方法。

List<LineChartBarData> linesBarData1() {
    LineChartBarData lineChartBarData1 = LineChartBarData(
      spots: gatherHumidityData(),
...