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

import 'package:flutter/material.dart';

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

最佳答案

它不是在创建非显式窗口小部件。因此,它既不是无状态的也不是有状态的。

runApp function只会获取MaterialApp小部件并“将其附加到屏幕上”,因此您并不是一路创建小部件,而只是使用已经存在的小部件。您的小部件树将从MaterialApp本身开始。

从概念上讲,我也要说,由于您没有空间来处理小部件的状态和/或变量,因此可以将其称为StatelessWidget,因为您无法更改所构建内容的状态。



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

07-24 21:30