我怎么能用这样的东西
$(window).resize(function() {
if ($(window).width() < 768) {
this.setState({slidesToShow:1})
}else if ($(window).width() < 992) {
this.setState({slidesToShow:2})
}else {
this.setState({slidesToShow:3})
}
});
但是当我调整页面大小时,状态不会改变,当它改变时,它会
未捕获的类型错误:this.setState 不是函数
你需要addEventListener
在窗口中componentDidMount
,
componentDidMount(){
window.addEventListener('resize', this.resize);
}
您的调整大小功能应该是,
resize = () => {
console.log(window.innerWidth);
if (window.innerWidth < 768) {
this.setState({slidesToShow:1})
}else if (window.innerWidth < 992) {
this.setState({slidesToShow:2})
}else {
this.setState({slidesToShow:3})
}
}
注意:确保在组件卸载时移除事件监听器,
componentWillUnmount(){
window.removeEventListener('resize', this.resize);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句