无法在初始化程序中访问实例成员“noww”

时间:2021-03-17 10:09:53

标签: flutter flutter-layout flutter-datetime-picker flutter-date-range-picker

我的应用程序中有这个日期选择器,我希望从使用应用程序的时间算起最后一个日期是 3 年前,我该如何解决它,我试图现在给出最后一个日期。year -3 但它没有不行!它一直告诉我“无法在初始化程序中访问实例成员‘noww’。”

  var noww = DateTime.now();
  DateTime selectedDate = DateTime(noww.year - 3);
showDatePicker(
        context: context,
        initialDate: selectedDate, // Refer step 1
        firstDate: DateTime(now.year - 10),
        lastDate: DateTime(now.year + 1),

1 个答案:

答案 0 :(得分:2)

现在像这样声明变量

var noww;

但是在那之后,像这样运行initState()中的其余代码

@override
void initState(){
  super.initState();
  noww = DateTime.now();
  DateTime selectedDate = DateTime(noww.year - 3);
  showDatePicker(
    context: context,
    initialDate: selectedDate, // Refer step 1
    firstDate: DateTime(now.year - 10),
    lastDate: DateTime(now.year + 1),
  );
}

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

这是因为你不能在函数之外使用初始化器。