Программная публикация WebChat не работает - при нажатии кнопки сообщения не отправляются - PullRequest
0 голосов
/ 29 мая 2019

Я следую за этими 2 образцами:

  1. Веб-чат с реакцией
  2. Программная деятельность по почте

Мой бот работает нормально. Я могу отправлять и обрабатывать действия по прямой. Мой тест helpButton регистрируется нормально, но при нажатии кнопки, как в примере, не отправляется фактическое сообщение «помощь».

var mainBotConnection;

const { createStore, ReactWebChat } = window.WebChat;
const { createProvider } = window.ReactRedux;
const Provider = createProvider('webchat');
const Store = createStore();

// get a token
const RequestToken = async (user) => {
    ...
};

(async function () {
   RequestToken(agent)
        .then(token => {

            //init main chat bot
            mainBotConnection = window.WebChat.createDirectLine({token: token});

            ...

            //grab mainbot placeholder and put it on screen
            window.ReactDOM.render(
                <Provider store={Store}>
                    <ReactWebChat
                        directLine={mainBotConnection}
                        storeKey='webchat'
                        userID={user.id}
                        username={user.name}
                        styleOptions={mainBotStyleOptions}
                    />
                </Provider>,
                document.getElementById('webchat'));

            // this message does not appear
            Store.dispatch({
                type: 'WEB_CHAT/SEND_MESSAGE',
                payload: { text: 'StartUp hello!' }
            });
        });
   
    // test button
    document.querySelector('#helpButton').addEventListener('click', () => {
        // this is successfully logged 
        console.log(`help button clicked`);
        
        // 'help' text does not appear in bot
        Store.dispatch({
            type: 'WEB_CHAT/SEND_MESSAGE',
            payload: { text: 'help' }
        });
        
        // this is also successfully logged 
        console.log(Store);
    });

    document.querySelector('#webchat').focus();
})().catch(err => console.error(err));

1 Ответ

0 голосов
/ 29 мая 2019

Вам необходимо добавить store={Store} к вашему ReactWebChat компоненту:

[...]
<Provider store={Store}>
    <ReactWebChat
        directLine={mainBotConnection}
        storeKey='webchat'
        userID={user.id}
        username={user.name}
        styleOptions={mainBotStyleOptions}
        store={Store} // ADD THIS PART
    />
</Provider>,
[...]

Как говорится, без остатка вашего кода я не смог точно это проверить. Вместо этого я запустил React с примером Redux . Если я удалил store={Store}, он не работал, но если я оставил его там, он работал просто отлично и отправлял приветственные и справочные сообщения. Вам также может понадобиться: <Provider store={ store } key='webchat'>, но, как я уже сказал, я не смог проверить ваш точный код.

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