在 Flutter 中将 null 分配给 File 变量

Assignment of null to File variable in Flutter

如何将 null 分配给 File 变量。将 null 分配给 File 变量时出现错误。

File myImage=null;
(myImage==null)?
 CircleAvatar(
    backgroundImage:AssetImage('assets/user_new.png'),
    backgroundColor: Colors.cyanAccent,
    radius: 70,
    )
    :
 CircleAvatar(
    backgroundImage:FileImage(myImage),
    backgroundColor: Colors.cyanAccent,
    radius: 70,
    )

我想你启用了 nullsafety。使用 nullsafety,没有 ? 声明的变量不能是 null。要解决您的问题,请执行以下操作。

File? myImage = null;

在 Flutter 中 空安全 是一回事。

有了它,没有 ? 的变量就不能为 null。在您的 File 声明中添加一个问号,如:

File? myImage = null;

在你的代码中,如果你想将它分配给 backgroundImage 参数。您有 2 个选择:

backgroundImage:FileImage(myImage!) //Null check: Exception throw only if null
backgroundImage:FileImage(myImage ?? _anotherWorkingFile) //If: use another standard file if null

声音 null safety 在 Dart 2.12 和 Flutter 2 中可用。

使用变量时,您声明的变量默认为 non-nullable,要使它们可为空,您必须在 datatype.

之后使用 ?

示例:

int? i = null

在你的情况下,它将是

File? myImage=null;

您可以像下面这样使用它:

(myImage==null)?
 CircleAvatar(
    backgroundImage:AssetImage('assets/user_new.png'),
    backgroundColor: Colors.cyanAccent,
    radius: 70,
    )
    :
 CircleAvatar(
    backgroundImage:FileImage(myImage!),
    backgroundColor: Colors.cyanAccent,
    radius: 70,
    )

此处使用 myImage 时,您将使用 ! 告诉程序 myImage 不会为空。

Note: We should avoid using ! wherever possible as it can cause a run time error but in your case, you are already checking for the null using a ternary operator so you can safely use !.