首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用热重新加载时,简单的字符串标题不会更新。

使用热重新加载时,简单的字符串标题不会更新。
EN

Stack Overflow用户
提问于 2019-04-21 21:00:39
回答 3查看 1.5K关注 0票数 0

热重载在一个简单的Hello World示例中无法工作。当试图在运行时将text (一个string )更改为其他东西并热重新加载它时,什么都不会发生。我正在一个物理设备上调试,我正在使用VSCode。

代码语言:javascript
复制
import 'package:flutter/material.dart';

void main() {
  String text = "Hello world";
      runApp(Center(child: new Text(text, textDirection: TextDirection.ltr)));
}

热重装不可靠还是我做错了什么?

编辑:发现重新启动应用程序,CTRL+SHIFT+F5,起作用的热重新加载应该。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-04-21 21:24:16

具体来说,热重新加载会导致所有现有的小部件重新构建。只有在小部件重建过程中涉及的代码才会自动重新执行。

https://flutter.dev/docs/development/tools/hot-reload

这意味着您需要一个小部件类,它实现了build方法,以确保代码在热重新加载时被重新执行。

代码语言:javascript
复制
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),
    );
  }
}
票数 3
EN

Stack Overflow用户

发布于 2019-04-21 21:20:15

如果你像这样创建你的班级,我认为没有问题:

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2019-04-27 19:38:42

但是,有几种类型的代码更改不能热重新加载

  • 全局变量初始化器
  • 静态场初始化器
  • 应用程序的main()方法

对于这些更改,您可以完全重新启动应用程序,而不必结束>调试会话:

  • 不要单击停止按钮;只需重新单击Run按钮(如果在运行会话中)或Debug按钮(如果在调试会话中),或者shift-单击“热重新加载”按钮。

颤振开发门户上发现了这个。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55786712

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档