当前位置: 首页 > news >正文

Select插件的用法

文章目录

  • 1.知识回顾
  • 2.使用方法
    • 2.1 builder属性
    • 2.2 selector属性
    • 2.3 shouldRebuild属性
    • 2.4 child属性
  • 3 示例代码

我们在上一章回中介绍了组件之间共享数据相关的内容,本章回中将继续介绍该内容.闲话休提,让我们一起Talk Flutter吧。

在这里插入图片描述

1.知识回顾

我们在前面章回中介绍了全局共享数据相关的内容,当时介绍了获取共享数据的三种方法,本章回将介绍其中的一种方法:使用Selector获取共享数据。

2.使用方法

Selector是一个Widget,它提供了builder,selector,shouldRebuild和child四个属性,一方面它可以转换数据类型,另一方面它可以获取共享数据。我们可以
通过selector属性获取到共享数据类型的对象,然后就可以使用共享类型提供的getter方法获取对象中的共享数据,把共享数据转换后再返回给builder属性。我们重
点介绍Selector的builder属性,selector属性和shouldRebuild属性,前两个属性都是必选属性,也就是说我们必须给这些属性赋值。

2.1 builder属性

该属性是方法类型,方法中包含三个参数,方法返回Widget对象,该方法和Consumer中buidler属性对应的方法相似,不同的地方只方法中第二个参数的类型,该方法
中三个参数的详细功能如下:

  • context:主要用来创建Widget,为创建Widget提供上下文环境;
  • value:是泛型类型,它用来表示转换数据类型后的对象;
  • child:表示Selector组件的子组件,因此它代表的对象和Selector组件的child属性代表的对象相同;

2.2 selector属性

该属性是方法类型,方法中包含两个参数,方法返回转换后的数据类型,下面是该方法的函数原型和相关参数的详细介绍:S Function(BuildContext, A) selector,

  • BuildContext:主要用来创建Widget,为创建Widget提供上下文环境;
  • A:它是泛型类型,它用来表示共享数据对象,通过该对象的getter方法可以获取到共享数据,然后就可以转换数据类型;
  • S:它是泛型类型,它用来表示转换数据类型后的对象,它和builder属性中的第二个参数类型相同;

2.3 shouldRebuild属性

该属性是方法类型,方法中包含两个参数,方法返回true或者false.返回值表示是否更新组件以及组件中的共享数据。该属性是可选属性,默认返回false.下面是该方
法的函数原型和相关参数的详细介绍:bool Function(T previous, T next)

  • previous:它是泛型类型,它用来表示转换前数据类型的对象;
  • next:它是泛型类型,它用来表示转换后数据类型后的对象;
    注意:这两个属性的类型相同,表示把共享数据类型转换后的数据类型,也就是selecttor属性中的S。

相关文章:

  • git报错:无法读取远程分支 ‘origin‘ does not appear to be a git repository
  • NLP-transformer学习:(7)evaluate实践
  • 物理学基础精解【7】
  • 平衡、软技能与持续学习
  • 绝了,自从用了它,我每天能多摸鱼2小时!
  • 【如何学习Python编程?】
  • element-plus 日历组件 Calendar设置每周第一天为周一-非国际化版
  • 编译 FFmpeg 以支持 AV1 编解码器以及其他硬件加速选项(如 NVENC、VAAPI 等)
  • 什么是源文件?
  • provide,inject父传子
  • (二)Optional
  • 【计算机组成原理】实验一:运算器输入锁存器数据写实验
  • 如何防范关联方风险传导?风险监控4.0,新增关联方风险维度!
  • c++继承详解
  • 【数据结构】栈和队列(Stack Queue)
  • 收藏网友的 源程序下载网
  • 07.Android之多媒体问题
  • ES6系列(二)变量的解构赋值
  • java第三方包学习之lombok
  • laravel 用artisan创建自己的模板
  • leetcode388. Longest Absolute File Path
  • Material Design
  • maven工程打包jar以及java jar命令的classpath使用
  • orm2 中文文档 3.1 模型属性
  • Promise面试题,控制异步流程
  • text-decoration与color属性
  • 给第三方使用接口的 URL 签名实现
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 聊聊springcloud的EurekaClientAutoConfiguration
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 温故知新之javascript面向对象
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • !!java web学习笔记(一到五)
  • # include “ “ 和 # include < >两者的区别
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • # 消息中间件 RocketMQ 高级功能和源码分析(七)
  • #define,static,const,三种常量的区别
  • #etcd#安装时出错
  • #Z2294. 打印树的直径
  • (2024.6.23)最新版MAVEN的安装和配置教程(超详细)
  • (23)mysql中mysqldump备份数据库
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (js)循环条件满足时终止循环
  • (poj1.3.2)1791(构造法模拟)
  • (二)fiber的基本认识
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (论文阅读笔记)Network planning with deep reinforcement learning
  • (亲测有效)推荐2024最新的免费漫画软件app,无广告,聚合全网资源!
  • (数据大屏)(Hadoop)基于SSM框架的学院校友管理系统的设计与实现+文档
  • (已解决)vscode如何选择python解释器
  • (转)http协议
  • (转)用.Net的File控件上传文件的解决方案
  • .mysql secret在哪_MYSQL基本操作(上)
  • .net 4.0发布后不能正常显示图片问题
  • .NET/C# 获取一个正在运行的进程的命令行参数