【问题标题】:defining state in flutter在颤动中定义状态
【发布时间】:2020-11-28 18:53:35
【问题描述】:

我正在学习一些颤振,我遇到了我们定义状态的部分,一个类被赋予了这样的东西:

class _sButtonState extends State<sButton>{
@override
Widget build(BuildContext context){
    return Container(
       RaisedButton(
            color: Colors.red,
            child: widget.child,
            onPressed: widget.onPressed,
        )
      );
  }
}  

widget 不是在任何地方定义的 instanceclass 变量。所以,我只能假设它是由 dart 框架隐式提供的。所以,我的问题是:

  1. 什么是widget
  2. 什么是 widget.child
  3. 什么是 widget.onPressed
  4. dart 中隐式提供的变量是什么?

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    widgetState 类中的一个属性,因为_sButtonState 扩展了State,那么您的类会继承这些属性和方法。

    当前配置。

    State 对象的配置是对应的 StatefulWidget 实例。该属性在调用 initState 之前由框架初始化。如果父级将树中的此位置更新为具有与当前配置相同的 runtimeType 和 Widget.key 的新小部件,则框架将更新此属性以引用新小部件,然后调用 didUpdateWidget,将旧配置作为参数传递.

    例如:

    class MyHomePage extends StatefulWidget {
      MyHomePage({Key key, this.title}) : super(key: key);
    
      final String title;
    
      @override
      _MyHomePageState createState() => _MyHomePageState();
    }
    
    class _MyHomePageState extends State<MyHomePage> {
      int _counter = 0;
    
      void _incrementCounter() {
        setState(() {
          _counter++;
        });
      }
    
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(
            title: Text(widget.title),
          ),
    

    title 属性是类MyHomePage 中的一个实例变量,它扩展了StatefulWidget 并且由于State&lt;T extends StatefulWidget&gt;,那么您可以使用自定义类MyHomePage 并调用widget.title

    【讨论】:

      猜你喜欢
      • 2021-11-30
      • 2021-02-18
      • 2020-11-10
      • 1970-01-01
      • 2022-01-25
      • 1970-01-01
      • 2019-08-31
      • 2019-01-29
      • 2021-02-08
      相关资源
      最近更新 更多