Flutter 不支持热重载的几个场景

2 min read

例如,如果代码有编译错误,热重载就无法工作,因为无法编译错误的代码。全局变量、静态属性、以及初始化方法(initState)的修改也无法通过热重载来更新,因为这些代码在应用启动时执行,并且在应用运行期间保持状态。此外,main 方法、枚举和泛型的更改也无法通过热重载来应用,因为它们也是在应用启动时确定的。

对于这些场景,开发者需要进行完全的应用重启(hot restart 或 cold restart)来应用这些改动。完全的应用重启会丢弃应用的当前状态并从头开始执行应用,这就使得这些初始化代码和全局变量等得以重新执行。

因此,开发者需要注意,在进行热重载时需要确保代码没有编译错误,并且避免对全局变量、静态属性、初始化方法、main方法、枚举和泛型等进行修改。如果需要修改这些部分,就需要进行完全的应用重启来应用改动。