Kopierter Speicherbestand mit lokaler Abfrage und schlüsselbasierten CRUD-Operationen.
Vue: data = [], key = "id". Dart: data ist erforderlich; ohne keyOf sind nur Abfragen möglich. Konstruktion kopiert die Liste. Doppelte Schlüssel, Einfügen vorhandener Schlüssel und Schlüsseländerungen werden abgelehnt. update/remove mit unbekanntem Schlüssel schlagen fehl; byKey liefert undefined/null.
TxArrayStore
| Parameter | Typ | Standard | Bedeutung |
|---|---|---|---|
| data | List<T> | erforderlich | Datensätze beziehungsweise Nutzdaten des Ereignisses. |
| keyOf | TxKeyOf<T>? | null | Liest den stabilen Datensatzschlüssel. |
| Mitglied / Typ / Rückgabe | Bedeutung |
|---|---|
List<T> get data | Datensätze beziehungsweise Nutzdaten des Ereignisses. |
bool get canByKey | Ob der Store ByKey unterstützt. |
bool get canInsert | Ob der Store Insert unterstützt. |
bool get canUpdate | Ob der Store Update unterstützt. |
bool get canRemove | Ob der Store Remove unterstützt. |
TxLoadResult<T> load(TxLoadOptions<T> options) | Lädt mit den angegebenen Optionen; bei DataSource ohne Argumente mit aktuellem Abfragezustand. Fehler werden weitergegeben. |
T? byKey(Object key) | Liest einen Datensatz anhand seines Schlüssels; fehlende Schlüssel ergeben undefined (Vue) beziehungsweise null (Dart). |
T insert(T item) | Fügt einen Datensatz mit eindeutigem Schlüssel ein und liefert ihn zurück. |
T update(Object key, T Function(T) change) | Aktualisiert eine Meldung beziehungsweise einen Datensatz. |
void remove(Object key) | Löscht den Datensatz beziehungsweise rekursiv den Datei-/Ordnerbestand. |
import 'package:tecexpress/tecexpress.dart';
Future<void> example() async {
final store = TxArrayStore<Map<String, Object>>([{'id': 1}], keyOf: (row) => row['id']!);
print(store.load(const TxLoadOptions()));
print(store.byKey(1));
store.insert({'id': 2});
store.update(2, (row) => {...row, 'name': 'Two'});
store.remove(2);
}