热重载在一个简单的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,起作用的热重新加载应该。
发布于 2019-04-21 21:24:16
具体来说,热重新加载会导致所有现有的小部件重新构建。只有在小部件重建过程中涉及的代码才会自动重新执行。
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),
);
}
}发布于 2019-04-21 21:20:15
如果你像这样创建你的班级,我认为没有问题:
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),
)));
}
}发布于 2019-04-27 19:38:42
但是,有几种类型的代码更改不能热重新加载:
main()方法对于这些更改,您可以完全重新启动应用程序,而不必结束>调试会话:
在颤振开发门户上发现了这个。
https://stackoverflow.com/questions/55786712
复制相似问题