Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Не срабатывает событие в React (https://javascript.ru/forum/events/75582-ne-srabatyvaet-sobytie-v-react.html)

kvizor34 22.10.2018 12:56

Не срабатывает событие в React
 
componentDidMount(){
console.log('mount!');
window.matchMedia('(max-width: 1400px)').addListener(function(){
            console.log('resize!');
        })
}


Первое сообщение отображается, а второе, при ресайзе, не срабатывает ни в одном браузере(( уже пару часов бьюсь помогите пожалуйста

Malleys 22.10.2018 13:15

window.matchMedia('(max-width: 1400px)').addEventListener("change", event => {
    console.log("resize!");
});

kvizor34 22.10.2018 13:36

Цитата:

Сообщение от Malleys (Сообщение 496792)
window.matchMedia('(max-width: 1400px)').addEventListener("change", event => {
    console.log("resize!");
});

всё равно не срабатывает...

Malleys 22.10.2018 13:47

Сложно предположить, почему так происходит. Тот первый код, который вы привели, тоже на самом деле работает. Вы можете привести дополнительно окружающий код? Также укажите, какой браузер используете (например, в консоли браузера выполните navigator.userAgent)

Dilettante_Pro 22.10.2018 13:51

Вот такой тестовый пример вполне работает
<style>
.someClass { border:1px solid red;}
</style>
<div id="div">123</div>
<script>
function setup_for_width(mql) {
        div.textContent = mql.matches;
	if (mql.matches) {
		div.classList.add("someClass");
	} else {
		div.classList.remove("someClass");
	}
}

var mql = window.matchMedia("screen and (min-width: 768px)"); 

mql.addListener(setup_for_width);

setup_for_width(mql);</script>


Часовой пояс GMT +3, время: 01:08.