【发布时间】:2020-06-20 21:11:19
【问题描述】:
我只需要根据屏幕大小实时更改我的状态值。即使我的屏幕尺寸发生了变化,除非我重新加载页面,否则我的计数值保持不变。这需要实时更新以获得更好的响应式设计。这是我的代码。谢谢!
import React, { useState, useEffect } from 'react';
import Carousel from '@brainhubeu/react-carousel';
import '@brainhubeu/react-carousel/lib/style.css';
import { useMediaQuery } from 'react-responsive'
const MyCarousel = () => {
useEffect(() => {
loadMediaQuery();
}, []);
const [count, setCount] = useState(0);
const loadMediaQuery = () =>{
if (tablet)
setCount(1)
if (phone)
setCount(2)
if (desktop)
setCount(3)
}
const tablet = useMediaQuery({
query: '(max-width: 876px)'
})
const phone = useMediaQuery({
query: '(max-width: 576px)'
})
const desktop = useMediaQuery({
query: '(min-width: 876px)'
})
return (
<div>
<Carousel slidesPerPage={count} >
<img className="image-one"/>
<img className="image-two"/>
<img className="image-three"/>
</Carousel>
</div>
);
}
【问题讨论】:
标签: reactjs state react-hooks setstate use-effect