Livewire + noUiSlider после обновления компонента не подгружает ползунки

Blade для Livewire

<div id="priceRangeFilter" data-min="1" data-max="1000"></div>
<input type="text" id="minPrice" value="220">
<input type="text" id="maxPrice" value="1000">

в render Livewire:

$this->dispatch('initRange');

app.js:

document.addEventListener('livewire:initialized', () => {
    initializePriceRangeSlider();
    Livewire.on('initRange', () => {
        initializePriceRangeSlider();
    })
});


function initializePriceRangeSlider() {
    var priceRangeFilter = document.getElementById('priceRangeFilter');
    if (!priceRangeFilter) return;

    const max = parseFloat(priceRangeFilter.getAttribute('data-max'));
    const min = parseFloat(priceRangeFilter.getAttribute('data-min'));
    let minInput = document.getElementById('minPrice');
    let maxInput = document.getElementById('maxPrice');

    if (priceRangeFilter.noUiSlider) {
        priceRangeFilter.noUiSlider.destroy();
    }

    noUiSlider.create(priceRangeFilter, {
        start: [min, max],
        step: 1,
        connect: true,
        range: {
            'min': min,
            'max': max
        },
        format: wNumb({
            decimals: 0
        })
    });

    priceRangeFilter.noUiSlider.on('update', function (values, handle) {
        document.getElementById('rangeValue').innerText = values[0] + ' - ' + values[1];
    });

    priceRangeFilter.noUiSlider.on('end', function (values, handle) {
        minInput.value = values[0];
        maxInput.value = values[1];

        Livewire.dispatch('updatePriceRange', {min: values[0], max: values[1]});
    });
}

После повторного рендеринга компонента не активируется слайдер. Хотя перед повторным созданием сделал destroy. В чем может быть проблема? Спасибо всем :)


Ответы (0 шт):