Тип аргумента 'int' не может быть назначен типу параметра 'Выражение ' - PullRequest
0 голосов
/ 24 февраля 2020

Я использую пакет moor_flutter для взаимодействия с базой данных sqlite в приложении флаттера. Я пытаюсь разобрать завтра как по номеру дня в месяце. Например, сегодняшняя дата 24, поэтому я анализирую 25 как завтра в методе moor_flutter isSmallerOrEqual(). Цель состоит в том, чтобы проанализировать 25 как в runtimetype **Expression<int, IntType>**, но я анализирую его как runtimetype **int**, потому что я не знаю, как преобразовать int в Expression<int, IntType>. Я пробовал несколько разных подходов, но ни один из них не удается.

Ниже приведена функция, где я делаю это.

Future NearDueDate() {
    // final DateTime currentDate = new DateTime.now();
    var dayToday = currentDate.day;
    var tommorow = int.parse(dayToday.toString()) + 1;
    return (select(the_records)
          ..where((t_r) => t_r.due_date.day.isSmallerOrEqual(tommorow)))
        .get();
  }

Примечание проблема здесь Как я могу конвертировать int в Expression<int, IntType>, чтобы не получить никаких ошибок по t_r.due_date.day.isSmallerOrEqual(tommorow)?

Спасибо, опубликовано с любовью.

1 Ответ

0 голосов
/ 24 февраля 2020

Извините, я не могу комментировать этот ответ.

Если Expression - это какая-то модель. Вам придется преобразовать его, создав экземпляр Expression.

. Возьмем для примера:

У нас есть модель, User

class User {

    int _id;
    String _name;

    User(this._name);

    User.withId(this._id, this._name );

    int get id => _id;

    String get name => _name;

    set name(String newName) {
        if (newName.length <= 255) {
            this._name = newName;
        }
    }

    // Convert a User object into a Map object
    Map<String, dynamic> toMap() {

        var map = Map<String, dynamic>();
        if (id != null) {
            map['id'] = _id;
        }
        map['name'] = _name;

        return map;
    }

    // Extract a User object from a Map object
    User.fromMapObject(Map<String, dynamic> map) {
        this._id = map['id'];
        this._name = map['name'];
    }
}

Итак это главное здесь

Чтобы создать тип User, мы бы сделали что-то вроде этого

user = User('John');

Теперь тип user.name будет User<String>

Обычно 'John' будет просто строкой. Теперь, когда он является частью класса User. Это User<String>

...