Глобальные переменные Flutter не обновляются при горячей перезагрузке - PullRequest
1 голос
/ 20 июня 2020

Я начинаю с флаттера и хочу узнать больше. Чтобы облегчить себе жизнь, я объявил глобальные переменные при запуске приложения.

Переменная errorMessage при запуске имеет значение null.

Но если она заполняется, потому что обнаруживает ошибку в выполнение и отображает мне сообщение, оно не возвращается к нулю, когда я перезагружаю свое приложение, и сохраняет сообщение об ошибке, которое меня блокирует.


class HomeController extends StatefulWidget {
  HomeController({Key key, this.title}) : super(key: key);
  final String title;

  @override
  _HomeControllerState createState() => _HomeControllerState();
}

class _HomeControllerState extends State<HomeController> {

  String errorMessage; // => My exemple of global variable
  bool debugFunctionStart = true;

  final _formKey = GlobalKey<FormState>();

  @override
  void initState() {
    super.initState();
  }
...

И пример функции в моем приложении:

functionChoose(List item,String key, int value){
    Map<String, dynamic> result;
    if(item.length > 0){
      List selectedInList = item.where((c) => c[key] == value).toList();
      result = selectedInList.first;
    }else{
      errorMessage = "ERROR ! not works ...";// => found an error
      print(errorMessage);
    }
    return result;
  }

Как это сделать?

Ответы [ 2 ]

1 голос
/ 20 июня 2020

Горячая перезагрузка сохраняет состояния, в которых это предполагаемое поведение

Вы можете установить errorMessage в состояние null reasseble() method

Вызывается всякий раз, когда приложение повторно собирается во время отладки, для пример во время горячей перезагрузки.

В конце концов, я бы порекомендовал вам прочитать о statemanagement

1 голос
/ 20 июня 2020

это может быть из-за того, что горячая перезагрузка сохраняет текущее состояние, просто перезапустите приложение, щелкнув зеленую круговую стрелку, если вы используете vscode, и это должно исправить это.

...