Skip to content

Reaction

Entity to react to a change in state

Has the same api as AbstractState

constructor

ts
function constructor(
  states: [
    AbstractState<string>,
    AbstractState<number>,
    ...,
    AbstractState<boolean>
  ]
): Reaction<[
  AbstractState<string>,
  AbstractState<number>,
  ...,
  AbstractState<boolean>,
]>

Example:

ts
const $m = new SvitoreModule();

const firstName = $m.State("Tom");
const lastName = $m.State("Cruise");

const firstNameChanged = $m.Event<string>();
const lastNameChanged = $m.Event<string>();

firstName.changeOn(firstNameChanged);
lastName.changeOn(lastNameChanged);

const reaction = $m.Reaction([firstName, lastName]);

reaction.subscribe(([firstName, lastName]) =>
  console.log(`${firstName} ${lastName}`)
);

firstNameChanged.dispatch("Dwayne");
lastNameChanged.dispatch("Johnson"); // log: "Dwayne Johnson", only once