如何在 XState 机中执行操作 send('EVENT_NAME', {to:'something from context'})?

Bor*_*ich 6 state-machine typescript xstate

我需要将事件发送到另一个生成的状态机,其 ID 作为上下文中变量中的字符串。(它不是父状态机,也不是子状态机)

喜欢

context.sendTo = 'B_id'

如何处理send()上下文中的参数?

以及如何放入send('MY_EVENT_NAME', {to: <something from context> })MachineOptions actions部分?


// this does not work...
const myMachineOptions:Partial<MachineOptions<any,any>> = 
{
  actions:{
     mySend: (context, event)=>send('MY_EVENT_NAME', {to: context.sendTo })
  }
}

Run Code Online (Sandbox Code Playgroud)

聚苯乙烯

就像 xState 中将事件从一台机器发送到另一台机器时的传递值一样

但我需要动态的不是消息正文而是to:部分

Bor*_*ich 6

在 XState 开发人员的帮助下https://github.com/davidkpiano/xstate/issues/1110

actions {
    actionSendMyEvent: 
             send('MY_EVENT_NAME', { to: context => context.sendTo })
    }
Run Code Online (Sandbox Code Playgroud)

非常感谢 XState 开发者和维护者!