Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.07.2018, 13:24
Профессор
Отправить личное сообщение для s24344 Посмотреть профиль Найти все сообщения от s24344
 
Регистрация: 12.08.2015
Сообщений: 206

IE и spread operator
Ребята, подскажите пожалуйста. IE ругается на spread operator.

Мои настройки:

package.json
"babel-core": "^6.26.3",
"babel-loader": "^7.1.2",
"babel-plugin-transform-object-rest-spread": "^6.26.0",
"babel-preset-env": "1.6.1",

.babelrc
{
  "presets": [
    "env"
  ],
  "plugins": [
    "transform-object-rest-spread"
  ]
}

webpack.config.js
module.exports = function () {
  return {
    module: {
      rules: [
        {
          loader: 'babel-loader',
          test: /\.js$/
        }
      ]
    }
  }
}
Ответить с цитированием
  #2 (permalink)  
Старый 19.07.2018, 14:58
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

s24344,
babel-polyfill еще надо для Object.assign
Ответить с цитированием
  #3 (permalink)  
Старый 23.07.2018, 08:28
Профессор
Отправить личное сообщение для s24344 Посмотреть профиль Найти все сообщения от s24344
 
Регистрация: 12.08.2015
Сообщений: 206

Спасибо. А Вы не могли бы более подробно подсказать куда его подключить?
Ответить с цитированием
  #4 (permalink)  
Старый 23.07.2018, 12:12
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

s24344,
Оказывается babel-polyfill совсем необязателен, потому что object spread переписывается в Object.assign, а если его не поддерживает браузер, то вот в такую функцию
function(target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];
      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }
    return target;
  };

Проверил с вашим конфигом в IE11 - всё работает. Что именно у вас пишет?
Ответить с цитированием
  #5 (permalink)  
Старый 24.07.2018, 09:53
Профессор
Отправить личное сообщение для s24344 Посмотреть профиль Найти все сообщения от s24344
 
Регистрация: 12.08.2015
Сообщений: 206

Object doesn't support property or method 'from'
И именно в строке, где используется spread.

Последний раз редактировалось s24344, 24.07.2018 в 11:23.
Ответить с цитированием
  #6 (permalink)  
Старый 24.07.2018, 10:24
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

Код покажите, как вы spread используете, какой ie?
Ответить с цитированием
  #7 (permalink)  
Старый 24.07.2018, 11:22
Профессор
Отправить личное сообщение для s24344 Посмотреть профиль Найти все сообщения от s24344
 
Регистрация: 12.08.2015
Сообщений: 206

IE11
this.primaryLinks = [...this.el.querySelectorAll('[data-nav-ref="primary-link"]')];
Предварительно ещё раз проверил, ошибка именно на этой строке.

Последний раз редактировалось s24344, 24.07.2018 в 11:45.
Ответить с цитированием
  #8 (permalink)  
Старый 24.07.2018, 11:57
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

s24344,
Дело тут не в object spread. Его тут вообще нет. Дело в том, что ваша конструкция переписывается в Array.from(this.el.querySelectorAll('[data-nav-ref="primary-link"]')), что в IE конечно же не поддерживается. Поэтому нужен babel-polyfill. Если не хочется его подключать, то можно переписать ваш код следующим образом
this.primaryLinks = Array.prototype.slice.call(this.el.querySelectorAll('[data-nav-ref="primary-link"]'));
Ответить с цитированием
  #9 (permalink)  
Старый 24.07.2018, 12:05
Профессор
Отправить личное сообщение для s24344 Посмотреть профиль Найти все сообщения от s24344
 
Регистрация: 12.08.2015
Сообщений: 206

Спасибо за помощь.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Возможно ли добавлять в массив только уникальные строки через spread? innowed Общие вопросы Javascript 2 02.06.2017 07:07