Моему клиенту требуется поддержка IE11 для нашего чат-бота. Мне пришлось изменить код веб-чата, чтобы не использовать функции es6, такие как функции стрелок, поскольку они не поддерживаются в IE11 / es5. По большей части мне это удавалось, но единственное, с чем я не мог работать, - это отправка отправляемого сообщения. Новый код работает в Chrome, но я получаю сообщение об ошибке Ожидаемый идентификатор в IE11. Вот соответствующий код:
const store = window.WebChat.createStore({}, function({dispatch}) { return function(next) { return function(action) {
if (action.type === 'WEB_CHAT/SEND_MESSAGE') {
// Message sent by the user
PageTitleNotification.Off();
clearTimeout(interval);
} else if (action.type === 'DIRECT_LINE/INCOMING_ACTIVITY' && action.payload.activity.name !== "inactive") {
// Message sent by the bot
clearInterval(interval);
interval = setTimeout(function() {
// Change title to flash the page
PageTitleNotification.On('Are you still there?');
// Notify bot the user has been inactive
dispatch({
type: 'WEB_CHAT/SEND_EVENT',
payload: {
name: 'inactive',
value: ''
}
});
}, 3000)
}
return next(action);
}}});
Раньше первая строка выглядела как
const store = window.WebChat.createStore({}, ({ dispatch }) => next => action => {
Проблема возникает в function({dispatch})
. IE консоль сообщает, что ожидается идентификатор, а весь веб-чат не загружается. В Chrome отлично работает. Если я изменю function({dispatch})
на function(dispatch)
, бот будет отображать, но оператор отправки, отправляющий неактивное сообщение боту (см. Ниже), больше не будет работать в IE ИЛИ Chrome.
// Notify bot the user has been inactive
dispatch({
type: 'WEB_CHAT/SEND_EVENT',
payload: {
name: 'inactive',
value: ''
}
});
Почему IE не распознает {dispatch}
как идентификатор, и что я могу сделать, чтобы это заработало?