OS 配合属性实现监听过程让页面能够局部刷新

83 阅读1分钟
OS 配合属性实现监听过程让页面能够局部刷新
 var _loadState = LoadState.loading.os;//简单化构建
 
 // a.os 将 a 包装成 ObServer 类型对象 拥有可以监听的特性
 
// 演示示例
 OS(os:_loadState,osv:(){
 //your code ....
  return LoadStateLayout(
   success(_)=>Text('加载成功'),
   fail:(_)=>LoadError(_failState),
   loading:(_)=>LoadingWidget(),
   state:_loadState.self);
});

/** 说明
这样只要改变 _loadState.value = LoadState.success; 即可监听到进行刷新
也可以使用 _loadState.refresh();
*/

_loadState.value = LoadState.success;  // 加载成功
_loadState.value = LoadState.fail;     //加载失败
_loadState.value = LoadState.loading;  //加载中

// 这样修改起来更加省事  
//即使在 stateless 组件中也能够局部刷新.

/***不用写
setState((){
  _loadState = LoadState.success;
});
***/

LoadingWidget 加载中... 组件
LoadError(_failState) ... 加载失败组件
success(_)=>Text('加载成功'), // 加载成功后的显示