共享对象
一个包装器,用于共享偏好设置,以简化可持久化数据。
概念
创建可持久化值通常需要一些样板代码。例如
import 'package:shared_preferences/shared_preferences.dart';
String? _value;
Future<void> setValue(String newValue) async {
final sharedPrefs = await SharedPreferences.getInstance();
await sharedPrefs.setString('name', newValue);
}
Future<String?> getValue() async {
final sharedPrefs = await SharedPreferences.getInstance();
return sharedPrefs.getString('name');
}
shared_objects 包旨在将这些样板代码减少到更简洁的实现。例如
import 'package:shared_objects/shared_objects.dart';
final value = SharedString('name');
await value.set('newValue');
await value.get();
入门
使用以下命令将依赖项添加到您的项目中:flutter pub add shared_objects。
用法
定义可持久化对象的基类是显式类型化的 SharedObjectBase 类。所有可持久化对象都由以下组件定义
id:与此对象关联的唯一的String键。set(T?):异步设置此对象的新值。如果新值为null,则会删除对象内容,并将id从SharedPreferences映射中移除。get():异步获取此对象的当前值。mutate(T? Function(T?)):通过传递函数异步修改此对象的值。该函数通过get()获得对象的初始值,并且必须返回更新后的值。如果初始值等于更新后的值,则不会进行更改,从而跳过对set(T?)的调用。
该包已包含该基类的多个扩展,以方便使用。这包括以下类
SharedBool:可持久化的bool。SharedDouble:具有一些算术扩展(add、sub、mul、div、pow)的可持久化double。SharedInt:具有一些算术扩展(add、sub、mul、div、pow)的可持久化int。SharedString:具有append扩展的可持久化String。SharedStringList:具有一些列表扩展(add、addAll、remove)的可持久化List<String>。