Как я могу разрешить «Тип аргумента ‘String?’ не может быть присвоен типу параметра ‘String’ » — Flutter

#flutter #dart

Вопрос:

введите описание изображения здесь столкнулся с «Типом аргумента ‘String?’ не может быть присвоен типу параметра ‘String'» в следующем коде

статический извлекаемый текст(VisionText visionText) { String text = «;

 for (TextBlock block in visionText.blocks) {
  for (TextLine line in block.lines) {
    for (TextElement word in line.elements) {
      text = text   word.text   ' ';
    }
    text = text   'n';
  }
}

return text;
 

}

Ответ №1:

«Тип аргумента ‘String?’ не может быть присвоен типу параметра ‘String'»

Эта ошибка возникает, когда ожидается ненулевое String значение, но вместо него String? предоставляется значение, равное нулю.

В этом случае, если ваше значение не равно нулю, а ваше значение равно нулю, вы можете сделать это text String word.text String? :

 text  = (word?.text ?? '')   ' ';
 

Здесь ?. оператор предназначен для проверки, если word не равно null, а затем получить text значение. ?? в случае word?.text , если значение равно null, затем примите в качестве значения пустую строку. Таким образом, значение всегда является ненулевым.

Вы можете прочитать больше о документации здесь.

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

1. Спасибо, это сработало

2. @MayankShekhar Можете ли вы отметить мой как принятый ответ, очень признателен! 😉

Ответ №2:

вы можете попробовать :

 text = text   (word?.text ?? '' )   ' ';