错误:无法将参数类型“ Future <Null>”分配给参数类型“ TimeOfDay”

时间:2019-10-17 02:39:45

标签: flutter dart

我正在尝试将时间选择器添加到我的flutter应用程序中。我正在尝试将时间格式化为12小时制。但是问题是当我尝试传递时间变量进行格式设置时,会出现这样的错误消息。

  

错误:参数类型'Future'无法分配给参数类型'TimeOfDay'。

到目前为止,这就是我这样做的方式。

DateTime _currentDate = new DateTime.now();
  TimeOfDay _currentTime = new TimeOfDay.now();



  Future <Null> selectedTime;

  String timeText = 'Set A Time';
  @override
  Widget build(BuildContext context) {

    /// Time Picker

      MaterialLocalizations localizations = MaterialLocalizations.of(context);
      String formattedTime = localizations.formatTimeOfDay(selectedTime,  <--Here i am getting error
          alwaysUse24HourFormat: false);

      if (formattedTime != null) {
        setState(() {
          timeText = formattedTime;
        });
      }
  

时间选择器小工具

TimePicker(

                  icon: Icons.access_time,
                  selectedTime: '$timeText',
                  onPress: () {


                    selectedTime = showTimePicker(
                      context: context,
                      initialTime: _currentTime,
                    );
                  },
                ),

有什么办法解决这个问题。

2 个答案:

答案 0 :(得分:0)

您的selectedTime必须是TimeOfDay而不是Future<Null>

答案 1 :(得分:0)

android更改为selectedTime类型,将TimeOfDay更改为onPress函数,然后将async更改为{ {1}}代替await showTimePicker

Future