当我创建一个简单的、基本的应用程序(如下面的应用程序)时,我创建了一个非显式的StatelessWidget
import 'package:flutter/material.dart';
void main() {
return runApp(
MaterialApp(
home: Scaffold(
body: Text('HI),
),
),
);
}发布于 2019-08-19 22:47:46
它不是创建一个非显式小部件。因此,它既不是无国籍的,也不是国家的。
runApp函数只会将您的MaterialApp小部件“附加到屏幕上”,因此您不会在此过程中创建一个小部件,而只是使用已经存在的小部件。您的小部件树将从MaterialApp本身开始。
在概念上,我还要说,由于您没有空间处理小部件的状态和/或变量,所以它可以称为StatelessWidget,因为您不能更改您构建的内容的状态。
鉴于当前的配置和状态,小部件描述了它们的视图应该是什么样子的。当小部件的状态发生变化时,小部件将重新构建其描述.-来自颤振部件简介
在您的示例中,即使您的应用程序树中有StatefulWidgets,您也无法公开该树的状态,没有变量,没有控制,没有管理。您只是直接将其他部件传递给您的应用程序。实际上,您是在将一个小部件树( MaterialApp及其子部件)引用到runApp函数。
发布于 2019-08-19 22:23:30
虽然我们显然不能与屏幕交互,实际上是在小部件树中,但通过呈现Scaffold,我们拥有了Stateful。
发布于 2019-08-20 08:52:08
因为无状态小部件是一个不能更改其状态的小部件,所以在它中定义的实例是最终的。在您的代码中,您的应用程序状态不能更改。因此,您可以假设它是一个无状态小部件,因为在flutter中,所有东西都是一个小部件。
https://stackoverflow.com/questions/57564424
复制相似问题