如何给 Flutter 有状态组件(StatefulWidget)传参?

定义好一个有状态(或无状态)的组件之后,需要为其传递一些参数,希望组件能够更加灵活使用。那么,在 Flutter 中如何为其传递参数呢?

以下是 StatefulWidget 传递值的步骤,一共三步:

1、类中定义 final 全局变量;

class QYInput extends StatefulWidget {
  final int minLines;
}

2、构造函数中初始化变量;

class QYInput extends StatefulWidget {
  final int minLines;

  const QYInput({Key? key, this.minLines = 1}) : super(key: key);
}

3、继承于 State 抽象类中通过 widget.xxx 调用变量。

class _QYInputState extends State<QYInput> {
  @override
  Widget build(BuildContext context) {
    return TextField(minLines: widget.minLines);
  }
}

注意:如果 TextFiled 组件前加上了 const 关键字,极有可能出现调用 StatefulWidget 组件的参数时(widget.xxx)报 Invalid Constant Value的错误,详细请查看博客文章。

上一篇:如何手写一个JDK动态代理?


下一篇:shiro权限注解和会话管理