Flutter 'showDatePicker' 抛出异常:错误:预期值为 'String' 类型,但得到类型为 'Null' 的值之一

Posted

技术标签:

【中文标题】Flutter \'showDatePicker\' 抛出异常:错误:预期值为 \'String\' 类型,但得到类型为 \'Null\' 的值之一【英文标题】:Flutter 'showDatePicker' throws exception: Error: Expected a value of type 'String', but got one of type 'Null'Flutter 'showDatePicker' 抛出异常:错误:预期值为 'String' 类型,但得到类型为 'Null' 的值之一 【发布时间】:2021-06-22 09:50:54 【问题描述】:
TextButton(
  onPressed: () => _showPicker(context),
  child: Icon(Icons.calendar_today),
)

Future<DateTime?> _showPicker(BuildContext context) 
  return showDatePicker(
      context: context, initialDate: DateTime(2000),
      firstDate: DateTime(1990),
      lastDate: DateTime(2100));


DatePicker 会弹出,但当您尝试选择日期或年份时,它会抛出:预期为“字符串”类型的值,但得到一个“空”类型的值

Flutter 2.0.3 • 通道稳定 • https://github.com/flutter/flutter.git 框架 • 修订版 4d7946a68d (7 天前) • 2021-03-18 17:24:33 -0700 引擎 • 修订版 3459eb2436 工具• Dart 2.12.2

【问题讨论】:

【参考方案1】:

我在使用最新的 Flutter for web 时也看到了同样的情况。看起来错误在日期选择器本身,而不是我的代码?尽管调试控制台中显示了错误消息,但日期选择器似乎仍按预期运行?

【讨论】:

刚在真机上试了一下,没有显示错误,看来只是网络问题。 Levi Lesches 的回答似乎是正确的。【参考方案2】:

编辑:这已在主频道中修复,即将发布

我为此提交了一个错误:https://github.com/flutter/flutter/issues/79834

这是由框架在内部调用HapticFeedback.vibrate() 引起的,当您在弹出窗口中点击几乎任何东西时会发出有趣的小嗡嗡声。但是,在 Web 上,这不起作用。有一个 switch-case 可以尝试查看平台是否支持它,但是 Web 从来没有正确的TargetPlatform,所以代码认为计算机可以振动。

当 Flutter 尝试向 Web 引擎发送消息时,会发生 null 错误。

【讨论】:

我也打开了一个问题,但他们无法复制它github.com/flutter/flutter/issues/79129 我检查过了,他们已经在主频道上修复了它,这就是他们无法重现它的原因。【参考方案3】:

我使用的是 2.2.3 稳定版,这个问题已经解决了。

【讨论】:

以上是关于Flutter 'showDatePicker' 抛出异常:错误:预期值为 'String' 类型,但得到类型为 'Null' 的值之一的主要内容,如果未能解决你的问题,请参考以下文章

flutter showDatePicker显示中文日期_Flutter时间控件显示中文

flutter useRootNavigator属性的作用

Flutter 日期时间选择类控件及国际化

落在pdf(EasyWebView)顶部的部分窗口对话框(showDatePicker)不起作用,没有反应

Vue 组件(component)之 精美的日历

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