Za, le comportement stocké dans @ WordPress data est déjà comme une machine à états finis parce que lamp;rsquoutilisation de lamp;rsquoaction réduit la capacité de
(State: State, action: action) = amp;gt State How to define a Finite State Machine with Typescript in @ WordPress data seems @ WordPress data Store very similar to the FSM Model we have introduced above: We just lack that we can find our specific State and the Transition between them Examinons donc de plus près la façon de résoudre ces problèmes étape par étape. Au début de nous avons montré les implémentations possibles de notre état damp;rsquoapplication. Notre première suggestion est un ensemble damp;rsquoattributs qui peuvent faire le travail, mais il ne ressemble pas du tout à une machine à états finis. Par conséquent, commençons par nous assurer que notre statut est clairement défini dans le modèle:
Type State = | form | Logging | success | error Type form = {Read Only Status: Form Read Only user name: String Read Only Password: String} Type logginging = {Read Only Status: Login Read Only user name: String Read Only Password: String} Type success = {Read Only Status:
Je pense que cette solution est bien meilleure quamp;rsquoau début. Dans notre solution initiale, nous avons pu définir un
Erreur (il suffit de définir errormessage à une valeur autre que la chaîne vide). Mais ça namp;rsquoa aucun sens! Que se passe t il? Sommes nous connectés ou devrions nous afficher une erreur? Cependant, la nouvelle solution est beaucoup plus précise dans la représentation de lamp;rsquoétat: elle rend lamp;rsquoétat
Actions dans @ WordPress data qui mettent à jour le stockage dans notre État. Parce que nous modélisons notre état en FSM, nos actions seront des flèches dans le diagramme original. Tout ce que avez à faire est de les modéliser comme une Fédération de types différenciés (les discriminateurs sont généralement appelés types par convention) afin que puissiez:
Type setcredentials = {Read Only type:
Nous avons besoin damp;rsquoun moyen de clarifier dans le Code que certaines opérations ne sont utiles que lorsque passez damp;rsquoun état à un autre. La meilleure solution que jamp;rsquoai trouvée jusquamp;rsquoà présent est damp;rsquoutiliser le réducteur lui même: la fonction Reducer (State: State, action: action): State {switch (state.status) {case
, mot de passe: opération. Mot de passe,} Cas
Complétez la machine d&rsquoétat en utilisant @ WordPress data et Typescript