Hello World
示例中, 热重装不起作用。在运行时尝试将text
(一种string
)更改为其他内容并热重载时,什么也没有发生。我正在物理设备上调试,并且正在使用 VSCode 。
import 'package:flutter/material.dart';
void main() {
String text = "Hello world";
runApp(Center(child: new Text(text, textDirection: TextDirection.ltr)));
}
热装不可靠,还是我在这里做错了?
编辑:发现重新启动应用程序CTRL + SHIFT + F5可以像热加载一样工作。
答案 0 :(得分:2)
特别是,热重新加载会导致所有现有的小部件都重新构建。仅会自动重新执行与重建小部件有关的代码。
https://flutter.dev/docs/development/tools/hot-reload
这意味着您需要一个实现build
方法的窗口小部件类,以确保在热重装时重新执行代码。
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
String text = "Hello world";
return Center(
child: new Text(text, textDirection: TextDirection.ltr),
);
}
}
答案 1 :(得分:1)
如果您这样创建类,我认为没有问题:
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
String text="Hello World"
return MaterialApp(
home: Scaffold(
body: Center(
child: Text(text,textDirection: TextDirection.ltr),
)));
}
}
答案 2 :(得分:0)
某些类型的代码更改 不能热加载 ,但是:
- 全局变量初始化器
- 静态字段初始化程序
- 应用程序的
main()
方法对于这些更改,您可以完全重新启动应用程序,而不必结束调试会话:
- 不要单击“停止”按钮;只需重新单击“运行”按钮(如果在运行会话中)或“调试”按钮(如果在调试会话中),或按住Shift键并单击“热重载”按钮。
在Flutter developer portal上找到了它。