Передача значений при отправке событий с одного компьютера на другой в xState - PullRequest
0 голосов
/ 28 февраля 2019

У меня есть простой 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 Ответ

0 голосов
/ 28 февраля 2019
COMMENT_STARRED: {
          actions: [
            (ctx, e) => console.log('e.payload', e.payload),
            send(
              (ctx, e) => ({
                type: 'OPENED_TASK_LIST_CREATOR',
                payload: e.payload
              }),
              {
                to: 'todo'
              }
            )
          ]
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...