t×tecexpressby TeKOcloud
ENv0.7.1
API & Datentypen / FLUTTER

TxArrayStore.

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

ParameterTypStandardBedeutung
dataList<T>erforderlichDatensätze beziehungsweise Nutzdaten des Ereignisses.
keyOfTxKeyOf<T>?nullLiest den stabilen Datensatzschlüssel.
Mitglied / Typ / RückgabeBedeutung
List<T> get dataDatensätze beziehungsweise Nutzdaten des Ereignisses.
bool get canByKeyOb der Store ByKey unterstützt.
bool get canInsertOb der Store Insert unterstützt.
bool get canUpdateOb der Store Update unterstützt.
bool get canRemoveOb 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.
dart
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);
}