0

它显示了这一点:"The field doesn’t override an inherited getter or setter." 由于这个问题,我无法在 Git 中推送我的代码,因为它在测试和分析时失败。

关于如何解决它的任何建议?我移出 Override _startDate_endDate但现在它显示:"The method doesn’t override an inherited method."对于 displayDatePicker。

import 'package:intl/intl.dart';
import 'package:flutter/material.dart';
import 'dart:async';
import 'package:date_range_picker/date_range_picker.dart' as DateRagePicker;

class Datepicker extends StatefulWidget {
  @override
  _DatepickerState createState() => _DatepickerState();
}

class _DatepickerState extends State<Datepicker> {

  DateTime _startDate = DateTime.now();
  DateTime _endDate = DateTime.now().add(Duration(days: 7));
  @override

  Future displayDatePicker(BuildContext context) async {
    {
      final List<DateTime> picked = await DateRagePicker.showDatePicker(
          context: context,
          initialFirstDate: _startDate,
          initialLastDate: _endDate,
          firstDate: new DateTime(DateTime.now().year),
          lastDate: new DateTime(DateTime.now().year + 2));
      if (picked != null && picked.length == 2) {
        setState(() {
          _startDate = picked[0];
          _endDate = picked[1];
        });
      }
    }
  }

  @override
  Widget build(BuildContext context) {
    return Container(
      child: Column(
        children: [
          RaisedButton(
            child: Text('select Date'),
            onPressed: () async {
              await displayDatePicker(context);
            },
            color: Colors.red,
            textColor: Colors.white,
            shape: RoundedRectangleBorder(
                borderRadius: BorderRadius.circular(18.0),
                side: BorderSide(color: Colors.red)),
          ),
          //Text("from:${_startDate}"),
          //Text("until:${_endDate}"),
          Text(
              "from:${DateFormat('MM/dd/yyyy').format(_startDate).toString()}"),
          Text("until:${DateFormat('MM/dd/yyyy').format(_endDate).toString()}")
        ],
      ),
    );
  }
}
4

1 回答 1

4

displayDatePicker不是 的方法State<Datepicker>,因此,我们只需要删除@override上面的行Future displayDatePicker

  // remove this line ---> @override

  Future displayDatePicker(BuildContext context) async {
    {
      final List<DateTime> picked = await DateRagePicker.showDatePicker(
          context: context,
          initialFirstDate: _startDate,
          initialLastDate: _endDate,
          firstDate: new DateTime(DateTime.now().year),
          lastDate: new DateTime(DateTime.now().year + 2));
      if (picked != null && picked.length == 2) {
        setState(() {
          _startDate = picked[0];
          _endDate = picked[1];
        });
      }
    }
  }
于 2020-12-30T21:43:30.377 回答