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时间控件显示中文