React owl.carousel $ не определено

Я создал приложение, используя приложение create-response-app. Я импортировал модуль jquery в компонент, а также owl.carousel, но почему он показывает ошибку.

Вот код компонента

import React,{Component} from 'react';

import $ from '../../../node_modules/jquery/dist/jquery.min'
import '../../../node_modules/owl.carousel/dist/owl.carousel'

import '../../../node_modules/owl.carousel/dist/assets/owl.carousel.min.css'

class Header extends Component{

    componentDidMount() {
    }

    render(){
        return(
            <div className = "owl-carousel">
                <div>Content 1</div>
                <div>Content 2</div>
                <div>Content 3</div>
                <div>Content 4</div>
                <div>Content 5</div>
                <div>Content 6</div>
                <div>Content 7</div>
            </div>
        )
    }
}

Невозможно прочитать свойство undefined. Снимок экрана с ошибкой

Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
0
0
2 810
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

На скриншоте видно, что Owl ожидает, что zepto или jQuery будут на window. Когда вы импортируете что-то, это доступно только в рамках этого модуля, а не на window.

Есть несколько способов исправить это:

Вариант 1. Включите jQuery в ваш public/index.html. Я бы рекомендовал использовать cdn.

Вариант 2: импортировать jQuery, вставить в окно, затем импортировать сову

// note: you don't need the whole path to node_modules.. just the package name
import jQuery from 'jquery'

window.jQuery = jQuery

// dynamically require owl
require('owl.carousel')

примечание: операторы import должны идти перед операторами require

Вариант 3 (Лучший вариант):

Просто используйте пакет реагировать-сова-карусель или другой пакет карусели, для которого не нужен jQuery. В любом случае импорт jQuery в React для использования пакета non-React в наши дни не нужен.

Другие вопросы по теме