包:flutter/src/widgets/basic.dart':断言失败:第 2297 行 pos 15:'heightFactor == null || heightFactor >= 0.0': 不是真的

0 flutter

  @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(),
        ),
      ),
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

小智 7

改变这个:

(data['amount'] as double) / totalSpending 
Run Code Online (Sandbox Code Playgroud)

对此:

totalSpending == 0 ? 0 : (data["amount"] as double) / totalSpending
Run Code Online (Sandbox Code Playgroud)

当您的交易列表为空时会发生此错误。如果您的交易列表为空,则 dart 将该表达式计算为 0 / 0,即 NaN。当您将此 NaN 传递给 ChartBar heightFactor: purchasePctOfTotal 时,它会抛出该错误,因为 heightFactor 期望值大于 0 或 null(NaN 与 null 不同)。