【问题标题】:Stateful Widget in FlutterFlutter 中的有状态小部件
【发布时间】:2019-06-10 01:55:26
【问题描述】:

我是flutter的新手,正在和StatefulWidget一起学习,但我无法清楚地理解以下术语

class MyApp extends StatefulWidget
{
  @override
  _myState createState() => _myState();
}  

我试过了

@override return _myState(); 我很清楚,但是我们在 createState() 方法之前使用了 _myState

【问题讨论】:

  • 现在你编辑了你的问题,我很困惑你想在这里问什么。 “在 createState() 方法之前使用 _myState”是什么意思?
  • 我想让它更清楚,但我把它搞砸了。现在可以看一下吗?

标签: flutter flutter-layout statefulwidget


【解决方案1】:

_myState这里实际上是一个类型,而不是一个变量名。

这里有这个功能

@override
_myState createState() => _myState();

相当于:

@override
_myState createState() {
    return new _myState();
}

_myState 类的定义可能是这样的:

class _myState extends State<MyApp> {
    ...
}

在 dart 中,您不需要使用 new(可选)来实例化对象。

但是,按照命名约定,类名应使用 PascalCase,在本例中为 _MyState 而不是 _myState,这将有助于使其更具可读性,尤其是在您的情况下。

【讨论】:

  • 还有一件事。据我所知,我们有 String、List、Int 等类型。但我不清楚 _myState 类型
  • _myState createState() 基本上意味着方法 createState() 返回一个定义为类的 _myState 类型。如果我们像您说的那样“在 createState() 方法之前使用 _myState”为什么会出现问题?
  • 我的问题是,除了 String、Int、List、Bool 等预定义类型之外,我们可以声明任何 type
  • 井类型只是类型。甚至像 String 和 int 这样的原始数据类型也只是 dart 库中定义的类。
  • (注意intbool以小写字母开头)
猜你喜欢
  • 2019-09-23
  • 2018-09-01
  • 2022-01-25
  • 2021-05-19
  • 1970-01-01
  • 1970-01-01
  • 2020-03-18
  • 2020-03-10
  • 2020-10-20
相关资源
最近更新 更多