тип 'int' не является подтипом типа 'double' функции 'result' - PullRequest
0 голосов
/ 11 января 2020

Я новичок, чтобы трепетать. Застрял в вопросе ниже.

  double weight = 0;

  weightIncrement() {
    setState(() {
      weight += 1;
    });
  }

  weightDecrement() {
    setState(() {
      weight -= 1;
    });
  }
      Text(
        cardType == CardType.age ? "$age".toString() : "$weight".toString())

Использование выше на некоторых кнопках. И установка значения в текст бросает ниже ошибки. I / flutter (22691): было сгенерировано следующее утверждение при построении Calculator (грязный, состояние: _CalculatorState # 82a4b): I / flutter (22691): тип 'int' не является подтипом типа 'double' в 'function result'

1 Ответ

0 голосов
/ 11 января 2020

Само сообщение об ошибке дает здесь ответ. По сути, оно говорит о том, что состояние, которое вы пытаетесь установить, имеет тип int, и оно (компилятор dart) ожидает, что оно будет иметь тип double. И это предполагает, что, поскольку вы определили тип веса как двойной. (double weight = 0;).

Быстрое и простое решение состоит в том, чтобы изменить тип веса при его инициализации следующим образом: int weight = 0;

Я понял, почему вы можете инициализировать вес как двойной, потому что вес не должен быть целым числом. Для этого вы можете установить двойное состояние следующим образом:

Сначала инициализируйте вес как double weight = 0.0;, затем измените ваши функции следующим образом:

   weightIncrement() {
      setState(() {
        weight += 1.0;
      }
   }

И то же самое для уменьшая вес.

...