在混乱中,我们可以传递一个无状态小部件,该小部件将git -c core.quotepath=false -c log.showSignature=false rm --cached -f -- src/main/java/com/lealceldeiro/valuedemo/MyFile.java
实例返回到MaterialApp
函数,如下所示:
runApp()
或者我们可以像这样将void main()=>runApp(new MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
...
);
}
}
的实例直接传递给MaterialApp
函数:
runApp()
这些方式之间有什么区别?谢谢。
答案 0 :(得分:3)
视觉行为没有差异。 变化的是热重装的行为方式。
例如,如果您使用runApp(MaterialApp())
,则从
runApp(MaterialApp(title: 'Foo'))
到
runApp(MaterialApp(title: 'Bar'))
然后热重载就不会考虑更改。
虽然您有以下课程:
class MyApp {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Foo',
);
)
}
并像这样使用它:
runApp(MyApp())
然后更改title
中的MyApp
将被正确地热加载。
答案 1 :(得分:0)
在一种情况下,您有一个类,可以在其中添加更多方法并使用它们。在一种情况下,您不会。
答案 2 :(得分:0)
为了使热重装能够保持状态,它会应用代码更改并重新运行build()
,以便更新视图。如果将重新启动整个应用程序,则先前的状态将丢失。这是不希望的。如果您要使用此方法,请使用热重启。
这也意味着,修改代码被重新启动整个应用程序时,其仅执行时,将不被应用到当前状态。
有关热重载和限制的更多详细信息,请参见https://flutter.io/docs/development/tools/hot-reload
要在热重载时添加自定义行为,可以https://docs.flutter.io/flutter/widgets/State/reassemble.html覆盖方法State<T>.reassemble