flutter StatefulWidget flap中的小部件属性是什么

svujldwt  于 2023-06-24  发布在  Flutter
关注(0)|答案(3)|浏览(83)

我有时会看到这样的东西:
widget.titlewidget.(anything)处于Flutter状态;就像AppBar Widget的 *Text Widget子级 * 中的示例:

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是什么意思?是什么事?

swvgeqrz

swvgeqrz1#

MyApp类扩展了StatefulWidget,这意味着这个小部件存储可变状态。当MyApp小部件第一次插入到树中时,框架调用createState()函数来创建_MyAppState的新示例,以与树中的该位置相关联。(注意,State的子类通常用前导下划线命名,以表明它们是私有的实现细节。)当这个小部件的父级重新构建时,父级创建了MyApp的新示例,但是框架会重用已经在树中的_MyAppState示例,而不是再次调用createState。
要访问当前MyApp的属性,_MyAppState可以使用其widget property。如果父对象重新生成并创建了一个新的MyApp,则_MyAppState将使用新的小部件值重新生成。如果您希望在小部件属性更改时得到通知,请重写didUpdateWidget()函数,该函数以oldWidget的形式传递,以便您将旧的小部件与当前的小部件进行比较。
根据Docs:widget属性
此属性由框架在调用initState之前初始化。如果父节点将树中的这个位置更新为具有与当前配置相同的runtimeType和Widget.key的新小部件,框架将更新这个属性以引用新小部件,然后调用didUpdateWidget,将旧配置作为参数传递。
reference link

du7egjpx

du7egjpx2#

长答短
您已经扩展了State类。
State类有一个名为widgetreadonly属性。这就是你所指的。

qvtsj1bj

qvtsj1bj3#

State类有一个名为widget的只读属性。这就是你所指的。
https://api.flutter.dev/flutter/widgets/State/widget.html

相关问题