При использовании Provider.of <ProvoiderName>(контекст) для виджета «Текст» должна быть указана ненулевая строка - PullRequest
0 голосов
/ 11 ноября 2019

У меня есть вопрос. При использовании этой строки кода

final String email = Provider.of<Auth>(context).email;

Внутри моего build метода в моем StatelessWidget и когда я пытаюсь его выполнить / вызвать так:

child: Text(email),

Яполучение следующей ошибки

Было сгенерировано следующее утверждение при создании InitDrawer (грязный, зависимости: I / flutter (17778): [InheritedProvider, MediaQuery]): I / flutter (17778): ненулевое значениеСтрока должна быть предоставлена ​​виджету Текст.

Но когда я использую ее следующим образом

child: Text("${email}"),

Можете ли вы сказать мне, в чем разница и почему я не получаю ошибку, когданазывать это скобками? И это правильный способ кодирования во флаттере? Я получаю свою электронную почту с помощью асинхронного метода, поэтому я предполагаю, что поэтому я получаю нулевое значение при первой загрузке приложения, но в самом приложении я могу видеть электронную почту без каких-либо ошибок. Я вижу только ошибку в консоли в Android Studio.

1 Ответ

0 голосов
/ 11 ноября 2019

Таким образом, фигурные скобки предназначены для использования значения параметра внутри строки в двойных кавычках. Так что, когда параметр 'email' не имеет никакого значения, угадайте, что находится внутри двойных кавычек? Только пустые двойные кавычки, которые являются допустимой строкой. Но когда вы задаете значение параметра без фигурных скобок и двойных кавычек, если параметр равен нулю (то есть в начале), тогда текст (пусто) становится нулевым. А для текстового виджета один параметр - строка обязательна. Не могу принять ноль. Правильный метод? Хотите показать заполнитель внутри текста ()? Затем внутри Text () - электронная почта «Placeholder». Хотите оставить это пустым? Текст ( "$ электронная почта")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...