Как включить переменные в URL внутри Flutter - PullRequest
0 голосов
/ 31 марта 2020

Я хочу поместить значение адреса электронной почты и пароль в середину URL-адреса 1111 и 22222. Значения адреса электронной почты и пароля поступают из текстовых контроллеров и сохраняются в строке адреса электронной почты и пароля. Как я могу положить их в середине URL. Мне надоело $ {email} insted из 1111, он выдал ошибку, только stati c элемент может быть инициализирован

String email = "";
String password = "";
String url ="http://2i6b753b.ngrok.io/authenticate/1111/22222";

Ответы [ 2 ]

0 голосов
/ 31 марта 2020

Ваш вопрос недостаточен, так как вы не предоставляете никакой другой информации об использовании, но в соответствии с ошибкой Only static members can be initialized я отвечу, предполагая, что вы используете это в StatefulWidget (не StatelessWidget, потому что переменные не инициализируется с ключевым словом final).

Ваш код

String email = "";
String password = "";
String url ="http://ngrok.io/authenticate/$email/$password";

такой же, как

String email = "";
String password = "";
String url ="http://ngrok.io/authenticate/${this.email}/${this.password}";

Вот проблема.
Переменная email и password являются членами класса (технически this). Переменная url также является членом класса, и все они являются инициализаторами. Инициализаторы выполняются до конструктора класса и конструктора суперкласса, и к this доступ разрешен только после этих конструкций. Таким образом, вы не можете использовать значение инициализаторов во время инициализации. Итак, что вы можете сделать, вы можете использовать stati c членов.

Элементы Stati c - это элементы данных (переменные) или методы, которые принадлежат самому классу stati c или не stati c, а не объектам этого класса.

Согласно Google, эти члены * stati c не являются теми, которые вам нужны в вашем случае использования, поскольку члены email и password должны отличаться для каждого экземпляра класса. Итак, лучшее решение, которое я могу посоветовать, это использовать url как функцию или получатель, а не как член, как

String get url => "http://ngrok.io/authenticate/$email/$password";

Надеюсь, это поможет.

0 голосов
/ 31 марта 2020

Вам не нужно использовать скобки. Вы можете использовать это, но также работает с скобками. Вы можете примерить https://dart.dev/#try -дарт

main() {
  String email = "mail@example.com";
  String url = "http://2i6b753b.ngrok.io/$email/";

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