Само сообщение об ошибке дает здесь ответ. По сути, оно говорит о том, что состояние, которое вы пытаетесь установить, имеет тип int, и оно (компилятор dart) ожидает, что оно будет иметь тип double. И это предполагает, что, поскольку вы определили тип веса как двойной. (double weight = 0;
).
Быстрое и простое решение состоит в том, чтобы изменить тип веса при его инициализации следующим образом: int weight = 0;
Я понял, почему вы можете инициализировать вес как двойной, потому что вес не должен быть целым числом. Для этого вы можете установить двойное состояние следующим образом:
Сначала инициализируйте вес как double weight = 0.0;
, затем измените ваши функции следующим образом:
weightIncrement() {
setState(() {
weight += 1.0;
}
}
И то же самое для уменьшая вес.