首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >StatelessWidget是什么?

StatelessWidget是什么?
EN

Stack Overflow用户
提问于 2019-08-19 22:00:08
回答 4查看 378关注 0票数 2

当我创建一个简单的、基本的应用程序(如下面的应用程序)时,我创建了一个非显式的StatelessWidget

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

void main() {
  return runApp(
    MaterialApp(
      home: Scaffold(
         body: Text('HI),
      ),
    ),
  );
}
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-08-19 22:47:46

它不是创建一个非显式小部件。因此,它既不是无国籍的,也不是国家的。

runApp函数只会将您的MaterialApp小部件“附加到屏幕上”,因此您不会在此过程中创建一个小部件,而只是使用已经存在的小部件。您的小部件树将从MaterialApp本身开始。

在概念上,我还要说,由于您没有空间处理小部件的状态和/或变量,所以它可以称为StatelessWidget,因为您不能更改您构建的内容的状态。

鉴于当前的配置和状态,小部件描述了它们的视图应该是什么样子的。当小部件的状态发生变化时,小部件将重新构建其描述.-来自颤振部件简介

在您的示例中,即使您的应用程序树中有StatefulWidgets,您也无法公开该树的状态,没有变量,没有控制,没有管理。您只是直接将其他部件传递给您的应用程序。实际上,您是在将一个小部件树( MaterialApp及其子部件)引用到runApp函数。

票数 3
EN

Stack Overflow用户

发布于 2019-08-19 22:23:30

虽然我们显然不能与屏幕交互,实际上是在小部件树中,但通过呈现Scaffold,我们拥有了Stateful。

脚手架扩展StatefulWidget

票数 1
EN

Stack Overflow用户

发布于 2019-08-20 08:52:08

因为无状态小部件是一个不能更改其状态的小部件,所以在它中定义的实例是最终的。在您的代码中,您的应用程序状态不能更改。因此,您可以假设它是一个无状态小部件,因为在flutter中,所有东西都是一个小部件。

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

https://stackoverflow.com/questions/57564424

复制
相关文章

相似问题

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