Botframework WebChat отправляет сообщение программно из отдельного компонента - PullRequest
0 голосов
/ 28 января 2020

Я искал все и не смог найти решение для этого. Я использую Angular. Я строю бота, который хотел бы иметь полностью настраиваемую область ввода текста отдельно от области по умолчанию. Я построил ввод текста в отдельном компоненте angular, чем компонент chatbot. Я пытаюсь использовать Redux для отправки сообщения боту из этого компонента, но, похоже, он работает только из того же компонента, в котором отображается бот.

Если я создаю хранилище в отображаемом объекте, как ниже, и вызвать диспетчер с помощью кнопки, я могу отправить сообщение через бот.

const store =  window.WebChat.createStore()

dispatch({
      type: 'WEB_CHAT/SEND_MESSAGE',
      payload: { text: value }
    });

Если я попытаюсь создать магазин за пределами этой функции, он, похоже, не будет работать. Прямо сейчас я создал отдельный файл, который создает хранилище с функциями для отправки сообщения.

export class WebChatStore {
    private store: any;
    constructor() {
        const store =  window.WebChat.createStore(
            {}, 
            ({ dispatch }) => next => action => {}
        );
    }


    sendMessage(value: string) {
        this.store.dispatch({
            type: 'WEB_CHAT/SEND_MESSAGE',
            payload: { text: value }
        });
    }

    getRawStore() {
        return this.store;
    }
}

Попытка вызвать следующее из пользовательского интерфейса не работает вообще, и он жалуется, что отправка не является собственностью магазина.

  sendMessage(value) {
    this.webChatStore.getRawStore().dispatch({
      type: 'WEB_CHAT/SEND_MESSAGE',
      payload: { text: value }
    });


    this.webChatStore.sendMessage(value)


    return value;
  }

Выше приведены два разных метода, которые не работали. Извините, если этот вопрос сбивает с толку. Любое руководство будет очень цениться. Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...