Передача значений при отправке событий с одного компьютера на другой в xState
У меня есть простой ChatMachine, который вызывает todoMachine. В todoMachine есть событие под названием OPENED_TASK_LIST_CREATOR, которое я хочу вызвать из chatMachine. Мне удалось это выяснить.
export const chatMachine = Machine({
id: 'chat',
initial: 'idle',
context: { message: '' },
states: {
idle: {
invoke: {
id: 'todo',
src: todoMachine
},
on: {
COMMENT_SUBMITTED: {
actions: 'addComment'
},
COMMENT_STARRED: {
actions: [
(ctx, e) => console.log('e.payload', e.payload),
send('OPENED_TASK_LIST_CREATOR', {
to: 'todo'
})
]
}
}
}
}
});
Проблема в том, что я хочу отправить значение вместе с событием "OPENED_TASK_LIST_CREATOR". А именно, список идентификаторов, которые я хочу открыть. Мне удалось войти с (ctx, e) => console.log('e.payload', e.payload),
чуть выше действия отправки в COMMENT_STARRED
,
Есть ли способ пройтиe.payload
в send('OPENED_TASK_LIST_CREATOR', { to: 'todo' })
чтобы я мог использовать значение в todoMachine?
1 ответ
COMMENT_STARRED: {
actions: [
(ctx, e) => console.log('e.payload', e.payload),
send(
(ctx, e) => ({
type: 'OPENED_TASK_LIST_CREATOR',
payload: e.payload
}),
{
to: 'todo'
}
)
]
}