错误:运行应用程序时出现错误“意外的空值”

Posted

技术标签:

【中文标题】错误:运行应用程序时出现错误“意外的空值”【英文标题】:error : I get error ' Unexpected null value' when I run app 【发布时间】:2022-01-21 14:20:08 【问题描述】:

1.这是第一个代码:

 DateTime? _selectedTime;
  void _datePicker(BuildContext con2) 
    showDatePicker(
      initialDate: DateTime.utc(2021, 12, 21),
      firstDate: DateTime(2000),
      lastDate: DateTime.now(),
      context: con2,
      // ignore: non_constant_identifier_names
    ).then((UserSelect) 
      if (UserSelect == null) 
        return;
      
      setState(() 
        UserSelect = _selectedTime;
      );
    );
  

2.这是第二个:

body: Container(
          color: Colors.black,
          height: double.infinity,
          child: Center(
            child: ElevatedButton(
              onPressed: () 
                _datePicker(context);
              ,
              style: ButtonStyle(
                  backgroundColor: MaterialStateProperty.all(Colors.purple)),
              child: Text(
                '$DateFormat('yyyy/MM/dd').format(_selectedTime!)',

【问题讨论】:

【参考方案1】:

我认为您没有正确使用它。 showDatePicker 返回一个 Future 值。看看这个,也许这会指导你; What is the correct way to add date picker in flutter app?

【讨论】:

【参考方案2】:

你犯了很多错误,你犯的第一个错误 DateTime 支持 null-safty,但是 .form、initialDate、firstDate 和 lastDate 没有使用 null 安全性。 第二个错误是你的 _datePicker 不支持异步,因为当用户选择时间时他们需要一些时间才能选择。

  DateTime _selectedTime = DateTime.now();
  void _datePicker(BuildContext con2) async 
    final DateTime? picked = await showDatePicker(
      context: con2,
      initialDate: DateTime.utc(2021, 12, 1), // Refer step 1
      firstDate: DateTime(2000),
      lastDate: DateTime.now(),
    ).then((UserSelect) 
      if (UserSelect == null) 
        return;
      
      setState(() 
         _selectedTime = UserSelect;
      );
    );
  

您添加的第三个错误!在 _seletedTime

ElevatedButton(
            onPressed: () => _datePicker(context)
            ,
            child: Text(
              '$DateFormat('yyyy/MM/dd').format(_selectedTime)',),

【讨论】:

以上是关于错误:运行应用程序时出现错误“意外的空值”的主要内容,如果未能解决你的问题,请参考以下文章

在运行SQL时出现错误,请问如何解决?

运行程序时出现nvidia驱动程序错误

使用 KivyMD 库运行应用程序时出现错误 No module named 'kivymd.app'

运行 mvc 应用程序时出现编译错误

运行颤振桌面应用程序时出现CMake错误

运行时出现零错误