[XState] Send Events to the Machine with the XState Send Action Creator

XState provides the send function to create an action that will send the event passed in to the machine. If we provide the second argument to the send function, the options object, we can send the event to a particular machine. This is useful when you have invoked a machine as a service on a state node, a concept that will be explored in a later lesson.

const { Machine, interpret, send } = require("xstate");

const echoMachine = Machine({
  id: "echo",
  initial: "listening",
  states: {
    listening: {
      on: {
        SPEAK: {
          actions: send("ECHO") // trigger echo action
        },
        ECHO: {
          actions: () => {
            console.log("echo is called");
          }
        }
      }
    }
  }
});

const service = interpret(echoMachine).start();
service.send("SPEAK"); //echo is called

猜你喜欢

转载自www.cnblogs.com/Answer1215/p/12215467.html