【问题标题】:DatePicker on Flutter: null value on getting date piked :Flutter 上的 DatePicker:获取日期时为空值:
【发布时间】:2020-02-14 05:14:21
【问题描述】:

虽然我的代码没有出错,但无法从我的日期选择器中获取日期。

  Future selectDate() async {
    DateTime picked = await showDatePicker(
        context: context,
        initialDate: new DateTime.now(),
        firstDate: new DateTime(2016),
        lastDate: new DateTime(2222));
    if (picked != null) setState(() => picked = datepicked);
    else{
      print(picked);
    }
  }
}

【问题讨论】:

    标签: flutter dart flutter-widget


    【解决方案1】:

    您需要在 datepicker 方法中传递context。完整的工作代码如下:

    body: Center(
            child: RaisedButton(
            child: Text('click'),
            onPressed: () {
              selectDate(context);
            }
            )
          ),
    
    
    Future selectDate(BuildContext context) async {
        DateTime picked = await showDatePicker(
            context: context,
            initialDate: selectedDate,
            firstDate: new DateTime(2016),
            lastDate: new DateTime(2222));
        if (picked != null && picked!= selectedDate) {
          setState(() => selectedDate = picked);
          print(picked);
        }
        else{
          print(picked);
        }
      }
    

    // 2020-02-21 00:00:00.000

    【讨论】:

    • 是的,这也是一个很好的答案。对不起,我只是恐慌。我的代码正在运行,我只是卸载我的应用程序并重新启动热重载。(我不知道最近发生了什么)顺便说一句,谢谢你的回答:)
    • picked != null :操作数不能为空,所以条件始终为真。你试试: if (picked!= selectedDate) { .....
    猜你喜欢
    • 2011-01-30
    • 1970-01-01
    • 2014-07-09
    • 2017-02-20
    • 1970-01-01
    • 1970-01-01
    • 2013-05-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多