Горячая перезагрузка флаттера с помощью VSCode иногда работает, иногда нет - PullRequest
0 голосов
/ 27 апреля 2020

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

Это приглашение в VSCode не означает , что означает горячую перезагрузку приложения.

Синхронизация файлов на устройстве Android SDK, созданный для x86. "

Вот мой main.dart файл с двумя списками, которые я хочу перевернуть для справки.

class _MyHomePageState extends State<MyHomePage> {
  // List<Color> colors = [Colors.yellow, Colors.red, Colors.yellow];
  List<Color> colors = [Colors.red, Colors.white, Colors.blue];

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
        child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: colors
                .map((element) => Expanded(
                        child: Container(
                      decoration: BoxDecoration(color: element),
                      // decoration: BoxDecoration(color: _counter.isEven ? Colors.red : Colors.blue),
                    )))
                .toList()),
      ),
  }
}

Пожалуйста, посоветуйте мне, как заставить работать горячую перезагрузку VScode, когда я это сделаю command+s.

Когда я вывожу colors из состояния виджета _MyHomePageStatte, поведение будет таким же. Вот демоверсия gif

Ответы [ 3 ]

2 голосов
/ 27 апреля 2020

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

И чтобы горячая перезагрузка работала с переменной вне виджета, вы должны использовать const varName вместо final varName или <Type> varName. Если переменная не может быть преобразована в const, у вас нет другого выбора, кроме горячего перезапуска приложения

0 голосов
/ 27 апреля 2020

Только горячие перезагрузки влияют только на переменные, которые находятся внутри сборки или обновляются внутри сборки,

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

0 голосов
/ 27 апреля 2020

это потому, что первый измененный цвет является переменной, когда вы сохраняете горячую перезагрузку, применяете новый цвет, но когда вы изменяете вторую переменную, это переменная в вашем состоянии, горячая перезагрузка изменяет ваши переменные, но состояние вашего виджета не меняется Это не проблема, это нормально. Если вы хотите увидеть изменения, вы можете перезагрузить приложение.

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