这个来自StatefulWidget flutter的小部件属性是什么

时间:2019-06-20 04:56:17

标签: android inheritance flutter frameworks

这是一个非常简单的问题,有时我会看到类似widget.titlewidget.(anything)的内容;类似于AppBar小部件的文本小部件子级中的示例:

class MyApp extends StatefulWidget{
    // some declarations here
    @override
    _MyApp createState() => _MyApp();
}

class _MyApp extends State<MyApp>{
   // some declaration here
    @override
    Widget build(BuildContext context){

        return MaterialApp(
            home: Scaffold(
               appBar: AppBar(child: Text(widget.title),),
            ),
        );
    }
}

这实际上是什么?

widget.title 我的意思是,widget引用是什么?是什么?

2 个答案:

答案 0 :(得分:1)

MyApp类扩展了StatefulWidget,这意味着此窗口小部件存储可变状态。当MyApp小部件首次插入树中时,框架将调用createState()函数来创建_MyAppState的新实例以与树中的该位置相关联。 (请注意,State的子类通常以引号引起来,以指示它们是私有实现的详细信息。)当此小部件的父级重建时,父级会创建MyApp的新实例,但是框架会重用{{1} }已经在树中的实例,而不是再次调用createState。

要访问当前_MyAppState的属性,MyApp可以使用其_MyAppState。如果父级重建并创建了一个新的widget property,则MyApp将使用新的窗口小部件值进行重建。如果希望在窗口小部件属性更改时收到通知,请覆盖_MyAppState函数,该函数作为oldWidget传递,使您可以将旧窗口小部件与当前窗口小部件进行比较。

现在按文档显示:小工具属性

  

此属性由框架在调用之前初始化   initState。如果父母将树中的该位置更新为新位置   与当前的runtimeType和Widget.key相同的窗口小部件   配置,框架将更新此属性以引用   新的小部件,然后调用didUpdateWidget,并传递旧的   配置作为参数。

reference link

答案 1 :(得分:1)

简短回答

您已经扩展了environment variable
引用docs

State类具有一个称为State的{​​{1}}属性。您要指的是哪一个。