Swiper: TypeError: Cannot read property 'push' of undefined or TypeError: classNames is undefined

Swiper: TypeError: Cannot read property 'push' of undefined or TypeError: classNames is undefined

我的项目使用 Swiper v4.5。当我打开 Chrome 开发者模式观看我的项目时,出现错误:Uncaught TypeError: Cannot read property 'push' of undefined。我也尝试了 Swiper v4.2,结果相同。我该如何解决这个问题?

整个项目使用的js如下:

- modernizr.min.js
- jquery.min.js
- bootstrap.min.js
- swiper.min.js

Swiper错误部分:

suffixes.forEach(function (suffix) {
      classNames.push(params.containerModifierClass + suffix);
});

简介

较新的 Swiper 版本似乎完全无法在浏览器中使用。浏览器似乎有不兼容的 JS。看来你需要使用一些旧版本的 Swiper。

自 Swiper 5.3.6 起,swiper5_3_6/package/src/components/core/classes/addClasses.js 具有以下内容:

export default function () {
  const swiper = this;
  const {
    classNames, params, rtl, $el,
  } = swiper;

[跳过了很多行]


  suffixes.forEach((suffix) => {
    classNames.push(params.containerModifierClass + suffix);
  });

回答

一个已知的良好的浏览器 Swiper 是版本 3.3.1,我们在一个小项目的生产中使用它。享受吧!