首页 > 其他分享 >get包中的状态管理

get包中的状态管理

时间:2024-06-11 23:31:39浏览次数:17  
标签:包中 状态 get 数据类型 value Obx 组件 数据 obs

文章目录


我们在上一章回中介绍了"使用get进行状态管理"相关的内容,本章回中将介绍继续介绍这方面的内容.闲话休提,让我们一起Talk Flutter吧。

在这里插入图片描述

1. 概念介绍

我们在上一章回中介绍了Get包中的状态管理组件:GetBuilder以及如何使用GetBuilder组件来管理状态。本章回中将介绍Get包中另外一个状态管理组件:Obx以及
如何使用Obx组件来管理状态。

2. 思路与方法

2.1 实现思路

  • 使用Obx初始化数据,这里的数据类型可以是dart中的自带的数据类型,也可是是自定义的数据模型类;
  • 使用Obx监听数据变化,当被监听的数据有更新时把数据实时同步到页面中的组件上;
  • 使用Obx更新数据,数据更新后会及时刷新页面中的数据;
    上面的思路非常简单,但是很抽象,感觉什么事情都是Obx组件在做,那么Obx是如何完成这些事情的呢?我们将在后面的小节中给出答案。

2.2 实现方法

使用Obx初始化数据时需要在数据后面加上obs后缀就可以,比如3.obs,“hello”.obs,ValueController().obs,分别把int,String和ValueController这
三种类型的变量进行了初始化,其中前两种数据类型是dart中的自带的数据类型,最后一种数据类型是自定义的数据类型。使用Obx监听数据也很方便,直接返回一个组件
就可以,比如Obx(() => Text(“hello”),), 我们可以在Text组件中显示被监听的数据。使用Obx更新数据时需要通过value方法实现,比如stateValue.value
= “new value"将会把stateValue变量中的值更新为"new value”.

3. 示例代码

  var intValue = 0.obs;
  var boolValue = false.obs;

 ///单独使用Obx组件,Obx监听当前页面中的数据
  Obx(() => Text("intValue: ${intValue.toString()}, boolValue: ${boolValue.toString()}"),),
  ///Obx监听数据模型类中的数据,页面再次进入时数据恢复默认值
  Obx(() => Text("intValue: ${valueModel.value.iValue.toString()}, strValue: ${valueModel.value.strValue}"),),

  intValue.value = 666;
  boolValue.value = true;

  valueModel.update((val) {
    val?.iValue = 999;
    val?.strValue = "String Value";
  });

4. 内容总结

最后,我们对本章回中的内容做一个全面总结:

  • Obx是一种响应式状态管理组件;
    看官们,与"使用get进行状态管理"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

标签:包中,状态,get,数据类型,value,Obx,组件,数据,obs
From: https://blog.csdn.net/talk_8/article/details/139610877

相关文章

  • `kubectl get pod -oyaml` 和 `kubectl describe pod`
    kubectlgetpod-oyaml和kubectldescribepod这两个命令都用于获取Pod的信息,但它们提供信息的方式和内容有所不同:kubectlgetpod-oyaml:这个命令列出指定Pod的信息,输出格式为YAML。输出内容是结构化的,并且通常是机器可读的。它包括Pod的所有字段和值,如API......
  • QWidget 属性——enabled
    ......
  • C# get TotalVisibleMemorySize FreePhysicalMemory TotalVirtualMemorySize FreeVirt
    1.InstallSystem.ManagementinNuget;2usingSystem.Management;namespaceConsoleApp37{internalclassProgram{staticvoidMain(string[]args){System.Timers.Timertm=newSystem.Timers.Timer();tm.......
  • c/c++设计模式---状态模式
    一个基本的状态转换范例monster.h#ifndef_MONSTER__#define_MONSTER__classMonsterStatus;//类前向声明//怪物类classMonster{public:Monster(intlife);~Monster();public:intGetLife()//获取怪物血量{returnm_life;}......
  • 监听套接字状态的四个宏
    监听套接字状态的四个宏1.FD_ISSET(intfd,fd_set*set):作用:检查文件描述符fd是否在fd_set类型的集合set中被设置。返回值:如果fd在集合中,则返回非零值(通常是1);如果不在集合中,则返回0。2.FD_SET(intfd,fd_set*set):作用:将文件描述符fd添加到fd_set类型的集合......
  • java发送get请求带参数
    在Java中,你可以使用java.net.HttpURLConnection或者org.apache.http.client.HttpClient来发送GET请求。以下是使用java.net.HttpURLConnection发送带参数的GET请求的示例代码:importjava.io.BufferedReader;importjava.io.InputStreamReader;importjava.net.HttpURLConnecti......
  • getchar
    getchar是一个标准输入输出库中的函数,用于从标准输入流(通常是键盘)中获取一个字符。它的原型定义在标准头文件stdio.h或者cstdio中。☺️intgetchar(void);getchar函数会读取下一个输入字符,并将其作为无符号字符转换为整数后返回。如果没有可读取的字符,或者发生了错误,它会......
  • Git-SSL证书-验证问题-可能由加速器引起:SSL certificate problem: unable to get loca
    一、问题的出现    当我们在使用Git 将本地仓库的代码推送到远程仓库或者从远程仓库克隆到本地时可能遇到以下问题。fatal:unabletoaccess'https://github.com/User/XXX/':SSLcertificateproblem:unabletogetlocalissuercertificate    即......
  • vue 发起get请求和post请求
    一、vite方式初始化vue3项目C:\Users\Administrator>npminitvite-apphis-project>npx>create-vite-apphis-projectScaffoldingprojectinC:\Users\Administrator\his-project...Done.Nowrun:cdhis-projectnpminstall(or`yarn`)npmrun......
  • java: 错误: 无效的源发行版:17解决方法、java: 无法访问org.springframework.web.bind
    可能的问题与解决方法java:错误:无效的源发行版:17(18)解决方法遇到这种问题大概率是版本以及配置出现问题,可以试试看按下面的步骤排除检查先检查自己的Java版本去到项目结构看Java配置是否正确这里以我的Java1.8举例主要是修改SDK为正确对应检查依赖项是否正确(i......