使用showDatePicker在dispose()之后调用setState()

时间:2018-08-21 22:04:23

标签: datetime dart flutter dispose setstate

我试图将日期值更改为在showDatePicker中选择的日期,但是无论何时调用它,我选择的日期都给我一个错误,即在setpose()之后调用setState(),此设置可以正常工作对我来说,不确定是什么改变了错误。我什至在setState中添加了if(this.mount),但现在它从未被调用,因为mount在此之前变为false,不确定在处置之前如何设置setState。

      DateTime _date = new DateTime.now();
      final f = new DateFormat.yMMMMd("en_US");
      String date;
      Future<Null> _buildShowDate(
      BuildContext context, Function addProductOrder) async {
        final DateTime picked = await showDatePicker(
                                    context: context,
                                   initialDate: _date,
                                  firstDate: new DateTime(
                                                DateTime.now().year, 
                                                   DateTime.now().month,
                                                    DateTime.now().day),
                                  lastDate: new DateTime(2020));
     print(this.mounted);
     if (this.mounted) {
       if (picked != null && picked != _date) {
         setState(() {
           _date = picked;
           date = f.format(_date);
         });
  }
}
}

0 个答案:

没有答案