Метод ‘ ‘ был вызван при null . Получатель: null Попытался вызвать: (123)

#flutter #dart

#flutter #dart

Вопрос:

Я получаю эту ошибку и не знаю почему. Я в основном просто проверяю оператор и делаю вычисления на его основе.

Спасибо за вашу помощь.

Функция:

 
  void calculate() {
    setState(() {
      int num1int = int.tryParse(_num1);
      int num2int = int.tryParse(_num2);
      int result = 0;
      if (_operator == " ") {
        result = num1int   num2int;
      }
      else if (_operator == "-") {
        result = num1int - num2int;
      }
      else if (_operator == "*") {
        result = num1int * num2int;
      }
      else if (_operator == "/") {
        result = num1int ~/ num2int;
      }
    });
  }
  

Ответ №1:

если «int.TryParse» не может преобразовать его в целое число, он вернет «null». Итак, ваш код делает: null null . Вы можете добавить проверку для num1int и num2int, если оно равно null перед вычислением.

Комментарии:

1. Вы знаете, почему он не может? Как я могу преобразовать строку в целое число в dart?

Ответ №2:

пожалуйста, измените свой код на

   if (_operator == " ") {
    result = num1int??0   num2int??0;
  }
  else if (_operator == "-") {
    result = num1int??0 - num2int??0;
  }
  else if (_operator == "*") {
    result = num1int??1 * num2int??1;
  }
  else if (_operator == "/") {
    result = num1int??1 ~/ num2int??1;
  }