如何修复 Flutter Dart 中“The getter 'pi' was called on null”问题?

问题描述 投票:0回答:1

我在 Flutter Dart 代码中遇到以下错误:

The getter 'pi' was called on null. Receiver: null Tried calling: pi

我已尝试以下方法,但尚未解决问题:

  • 检查
    pi
    是否为空
  • 使用
    io
    代替
    pi
    (导入
    dart:io
    没有帮助)
  • 完全删除
    pi

相关代码(带解释):

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'dart:math' as math;


// ... 

class CustomTimerPainter extends CustomPainter {
  // ... 

  @override
  void paint(Canvas canvas, Size size) {
    // ... existing code ...

    // Problem likely lies here:
    var math; // 'math' is never assigned a value
    double progress = (1.0 - animation.value) * 2 * math.pi; 
    canvas.drawArc(Offset.zero & size, math.pi * 1.5,
 -progress, false, paint);
  }  
} 

问题说明:

我相信该错误是由

math
中的
CustomTimerPainter
变量引起的。它已声明但从未分配值,当您尝试使用
math.pi
时会导致空引用。

如何解决这个问题?

flutter dart math
1个回答
4
投票

问题出在这一行

    var math;

您定义了一个名为 math 的变量,但尚未将其分配给任何内容。由于 math 为 null,因此您会收到错误“在 null 上调用 getter 'pi'”。

您需要删除此行。

如果您这样做,您的代码现在就可以工作了

import 'dart:math' as math;

但是,数学前缀不是必需的,所以你也可以这样做

import 'dart:math;

并使用 pi,而不是 math.pi

© www.soinside.com 2019 - 2024. All rights reserved.