在创建Flutter类和小部件时出现了空安全错误。

13 浏览
0 Comments

在创建Flutter类和小部件时出现了空安全错误。

我正在学习Flutter / Dart,在这个视频中进行练习时,遇到了一个错误,据我所了解,这是由于空安全特性引起的,并且因为示例来自以前的版本,所以出现了问题。

import 'package:flutter/material.dart';

class OurImage extends StatelessWidget {

final String? pathImage; //change here

final double? widthImage; //change here

final double? heightImage; //change here

OurImage({this.pathImage, this.heightImage, this.widthImage});

@override

Widget build(BuildContext context) {

final photo = Container(

width: this.widthImage,

height: this.heightImage,

margin: EdgeInsets.only(right: 20.0),

decoration: BoxDecoration(

image: DecorationImage(

image: AssetImage(this.pathImage!), fit: BoxFit.cover)), //change here

);

return photo;

}

}

阅读这些错误123关于空安全的问题,我考虑通过在代码中添加"?"和"!"来修复出现的错误,通过这样的方式,我验证了错误不再出现。

这样修复错误的方式是正确的吗?我应该如何创建OurImage类的变量以避免出现这个错误?

0
0 Comments

在创建Flutter类和小部件时出现了null safety错误。这个问题的出现是因为在代码中使用了可为空的变量,需要考虑到这个变量可能为空的情况,并提供一个替代行为。

解决方法之一是为可为空的属性提供默认值。例如,在上述代码中,可以通过给pathImage、widthImage和heightImage添加默认值来解决这个问题。这样,当这些属性为空时,就会使用默认值替代。

另一种解决方法是在使用这些属性时进行判断。例如,在第二个示例代码中,使用了空值合并运算符(??)来判断这些属性是否为空,如果为空则使用默认值。这样可以避免在使用这些属性时出现空指针异常。

通过以上两种方法,可以解决创建Flutter类和小部件时的null safety错误。

0