Skip to main content
Skip table of contents

Aktionen

Aktionen dienen dazu Werte des Kachelstates zu verändern. Dabei können mehrere Werte auf einmal geändert werden, so dass die Komponenten der Kachel auch nur einmal neu gerendert werden.

Definition von Aktionen

Eine Aktion ist dabei wie folgt aufgebaut:

  • Payload (Parameter der Aktion)

  • mehrere Reducer (Funktionen, die Änderungen am Kachelstate durchführen, wenn die Aktion ausgelöst wird)

Übersteuerbarkeit der Aktionen

  • In höheren Schichten können generell neue Aktionen definiert oder bestehende Aktionen überschrieben werden.

    • Damit es bei neuen Aktionen nicht zu Namenskonflikten kommt, werden Aktionen in tieferen Schichten mit einem Prefix versehen.

    • Beispiel C0: Eingegebener Name = AddEntry → Entgültiger Name: C0AddEntry 

  • Der Payload einer Aktion kann in höheren Schichten lediglich um neue Eigenschaften erweitert werden!

    • Damit es dabei nicht zu Namenskonflikten kommt, werden die Einträge aus tieferen Schichten an den Verwendungsstellen mit einem Prefix versehen.

      • So wird aus einer definierten Eigenschaft entries  in C0 an der Aufrufstellen ein c0entries . Das trifft nicht auf Eigenschaften aus der C2-Schicht zu!

  • Die Implementierung der einzelnen (Reducer-) Funktionen kann ebenfalls in höheren Schichten überschrieben / erweitert werden:

    • (Warnung) WICHTIG: Dabei muss man nur die Eigenschaften aus der aktuellen Schicht modifizieren! Es ist nicht nötig einen super()-Aufruf einzufügen.

      • Die Reducer-Funktionen werden immer nacheinander auf dem State-Objekt ausgeführt

      • Also zuerst alle C0-, dann alle C1- und letztlich alle C2-Reducer


Benutzung / Ausführung einer Aktion

Für jede Aktion steht ein passender Hook nach folgendem Namensschema bereit: useAction<ActionName>() 

In obigem Beispiel sähe das also so aus:

  • Der Hook gibt eine Funktion zurück, deren Syntax dem Payload der Aktion entspricht.

  • Die Funktion kann nun beliebig in der entsprechenden Komponente verwendet werden.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.