Ваш вопрос недостаточен, так как вы не предоставляете никакой другой информации об использовании, но в соответствии с ошибкой 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";
Надеюсь, это поможет.