StatefulWidget/StatelessWidget 传参及使用

StatefulWidget

StatefulWidget/基本用法
class name extends StatefulWidget {
  name({Key key}) : super(key: key);

  @override
  _nameState createState() => _nameState();
}

class _nameState extends State<name> {
  @override
  Widget build(BuildContext context) {
    return Container(
       child: child, //具体的内容
    );
  }
}
StatefulWidget 接收参数
class DatePicker extends StatefulWidget {
	//onCancel/onSure是上个页面传过来的值
  DatePicker({Key key, this.onCancel, this.onSure}) : super(key: key);
  final Function onSure;
  final Function onCancel;
  @override
  _DatePickerState createState() =>
      _DatePickerState(onCancel: this.onCancel, onSure: this.onSure);  //传递给_DatePickerState
}
class _DatePickerState extends State<DatePicker> {
  final Function onSure;
  final Function onCancel;
  _DatePickerState({this.onSure, this.onCancel});  //接收DatePicker传过来的值
}
传入参数到StatefulWidget

使用DatePicker
使用用法联动地址

DatePicker(
  onCancel: () {
    Navigator.of(context).pop();
  },
  onSure: (value) async {
    //确认回调
    //处理data或业务逻辑
    setState(() {
      birthday = value;
    });
    Navigator.pop(context);
    // print(value); 
  },
);
StatefulWidget 使用接收到的参数

简单的使用方法

child: GestureDetector(
  onTap: () {
    onCancel();
  },
  child: Text("取消"),
)

StatelessWidget 基本用法

class name extends StatelessWidget {
  const name({Key key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Container(
      child: child,//具体内容
    );
  }
}
StatelessWidget 接收参数
class IndexCell extends StatelessWidget {
  final VoidCallback onPressed;
  final String iconName;
  final String title;
  final String content;
  final bool isClick;
  IndexCell({this.title, this.content, this.iconName, this.onPressed, this.isClick});
}
传入参数到StatelessWidget
IndexCell(
  title: '呢称',
  content: username,
  iconName: null,
  isClick: true,
  onPressed: () {
  	//逻辑处理
  },
),
StatelessWidget 使用接收到的参数

简单的使用方法

child: GestureDetector(
  onTap: onPressed,
  child: Text(content),
)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值