refresh_state
refresh_state 通过消除冗余代码提供状态管理解决方案,有助于加快开发过程
安装
将 refresh_state 添加到项目的 pubspec.yaml 中
Refresher 提供 builder 和 listener,具有用于刷新状态的 id。
Refresher
Refresher<int>(
id: 'abc',
initialData: 0,
initialState: AppState.blue,
listener: (state, data) {
if (kDebugMode) {
print('listening $state $data');
}
},
builder: (context, state, data) {
return Center(
child: CircleAvatar(
radius: 30,
backgroundColor: state == AppState.red
? Colors.red
: state == AppState.green
? Colors.green
: Colors.blue,
child: Text(
'$data',
style: const TextStyle(
fontSize: 18,
fontWeight: FontWeight.w500,
color: Colors.white),
),
));
},
)
参数
id
id 将用于标识 refresher,多个 Refresher 可以具有相同的 id,但如果提供了 id,则具有相同 id 的所有 Refreshers 都将收到通知
initialData
initialData 将是 builder 中提供的初始数据。
initialState
initialState 将是 builder 中提供的初始状态。
listener
调用 refresh 时将调用 listener。
builder
调用 refresh 时将调用 builder。
child
如果只想监听,请使用 child 而不是 builder,builder 和 child 不能一起使用
从应用中的任何位置调用带有 ID 的 refresh 函数来通知 Refresher。
refresh
refresh('abc', (state) {
if (state == AppState.blue) {
return AppState.red;
} else if (state == AppState.red) {
return AppState.green;
} else {
return AppState.blue;
}
});
参数
id
id 将用于标识 refresher,多个 Refresher 可以具有相同的 id,但如果提供了 id,则具有相同 id 的所有 Refreshers 都将收到通知。
state-callback
state-callback 将以旧状态作为参数,并返回新状态。
data-callback
data-callback 将以旧数据作为参数,并返回新数据。
贡献者指南
我们始终欢迎对我们仓库的贡献,我们要求贡献者仅将拉取请求发送到 develop 分支。
许可证!
refresh_state 是 MIT 许可。