首页 > 解决方案 > 使用构造函数参数来评估彼此依赖的最终值。颤振/飞镖

问题描述

我有一个小部件,它接受一个代表允许在屏幕上显示的页面的数字。如果设备很弱,bool则可以传递一个覆盖初始值的设备。但是,由于所有值都是最终值,因此我必须在设置值之前在构造函数中对其进行评估。

class _A extends StatefullWidget{

  _A(this.limitPages, 
    this.pagesToDisplay: limitPages ? 10 : pagesToDisplay,
  )

  final int pagesToDisplay;
  final bool limitPages;
}

我可以在初始化列表中声明它,但是我不能为pagesToDisplay.

class _A extends StatefullWidget{
  _A(this.limitPages)
    :this.pagesToDisplay: limitPages ? 10 : pagesToDisplay

  final int pagesToDisplay;
  final bool limitPages;
}

有没有办法在构造函数设置最终值之前/之前断言语句?

标签: constructordartflutterinitializationwidget

解决方案


如果要在初始化列表中使用参数,该参数不能是初始化参数,您需要在初始化列表中进行初始化:

class _A {
  _A(bool limitPages, int pagesToDisplay)
      : limitPages = limitPages,
        pagesToDisplay = limitPages ? 10 : pagesToDisplay;

  final int pagesToDisplay;
  final bool limitPages;
}

推荐阅读