在初始化器中只能访问静态成员

时间:2020-07-08 04:15:52

标签: function flutter dart

我正在尝试创建一个新变量,该变量通过将数量乘以价格来获得总价格,但这给了我一个错误:我为什么不能这样做?

class OrderScreen extends StatefulWidget {

  final item;
  final quantity;
  final price;
  OrderScreen({this.item,this.quantity,this.price});



  @override
  _OrderScreenState createState() => _OrderScreenState();
}

class _OrderScreenState extends State<OrderScreen> {
  var totalprice = widget.price * widget.quantity; //Only static members can be accessed in...



  @override
  Widget build(BuildContext context) {
    ....
  }
}

2 个答案:

答案 0 :(得分:0)

您应该在initState中这样做

var totalprice;

@override
void initState(){
  totalprice = widget.price * widget.quantity;
}

静态成员是唯一可以用来初始化其他成员的成员(因为它们是在构造函数之前创建的)

答案 1 :(得分:0)

或者您也可以创建getter

double get totalprice => widget.price * widget.quantity;