Заменить переменную в dart

#flutter #http #dart

#flutter #http #dart

Вопрос:

В классе consts я объявил это

Consts

 static const URL = "";
  

В блоке входа в систему, после успешного входа в систему, сервер вернет url мне значение, и я присваиваю значение url этой переменной.

 Response user =
          await _repo.getLogin(context, email, password);
      var baseResponse = UserResponse.fromJson(user.body);
      if (baseResponse.status == 101) {
        Consts.URL =  baseResponse.url;
       }
  

Предположим, что в классе repo у меня есть 5 методов, мне нужно использовать url класс in consts.Является ли это хорошим решением и возможным?

 Future create(){
    try{
     var request = http.MultipartRequest('POST',Uri.parse(Consts.URL));
    }catch(e){
    }
}
  

Ответ №1:

Вы не можете присвоить значение константе во время выполнения, поскольку const является константой времени компиляции.

Пожалуйста, обратитесь к документации по https://dart.dev/guides/language/language-tour#final-and-const

Final и const Если вы никогда не собираетесь изменять переменную, используйте final или const , либо вместо var, либо в дополнение к типу. Конечная переменная может быть установлена только один раз; переменная const является константой времени компиляции. (Переменные Const неявно являются окончательными.) Конечная переменная верхнего уровня или класса инициализируется при первом ее использовании.