首页 > 解决方案 > 包:flutter/src/widgets/basic.dart':断言失败:第 2297 行 pos 15:'heightFactor == null || heightFactor >= 0.0':不正确

问题描述

  @override
  Widget build(BuildContext context) {
    return Card(
      elevation: 6,
      margin: EdgeInsets.all(20),
      child: Padding(
        padding: EdgeInsets.all(10),
        child: Row(
          mainAxisAlignment: MainAxisAlignment.spaceAround,
          children: groupedTransactionValues.map((data) {
            return Flexible(
              fit: FlexFit.tight,
              child: ChartBar(
                data['day'],
                data['amount'],
                (data['amount'] as double) / totalSpending,
              ),
            );
          }).toList(),
        ),
      ),
    );
  }
}

标签: flutter

解决方案


改变这个:

(data['amount'] as double) / totalSpending 

对此:

totalSpending == 0 ? 0 : (data["amount"] as double) / totalSpending

当您的交易清单为空时会发生此错误。如果您的事务列表为空,则 dart 将该表达式评估为 0 / 0,即 NaN。当您将此 NaN 传递给 ChartBar heightFactor:spokenPctOfTotal 时,它会引发该错误,因为 heightFactor 期望的值大于 0 或 null(NaN 与 null 不同)。


推荐阅读