Javascript 反应触发器调整大小,但不要';我不能调整屏幕的大小
我试图触发一个调整大小,但实际上没有调整屏幕大小,因为它修复了我的滑块Javascript 反应触发器调整大小,但不要';我不能调整屏幕的大小,javascript,reactjs,Javascript,Reactjs,我试图触发一个调整大小,但实际上没有调整屏幕大小,因为它修复了我的滑块 window.dispatchEvent(new Event('resize')); 上面的代码不起作用,有没有人有其他方法可以触发react中的resize 必须使用jQuery: jQuery(window).resize(); 我认为你对这个问题的看法是错误的 在初始视图期间,决不应依赖于调整大小 因此,滑块代码在调整大小方面存在问题,这是处理图像时的典型问题(在加载图像之前读取宽度) 但是如果你还想这样做的
window.dispatchEvent(new Event('resize'));
上面的代码不起作用,有没有人有其他方法可以触发react中的resize
必须使用jQuery:
jQuery(window).resize();
我认为你对这个问题的看法是错误的 在初始视图期间,决不应依赖于调整大小 因此,滑块代码在调整大小方面存在问题,这是处理图像时的典型问题(在加载图像之前读取宽度) 但是如果你还想这样做的话 这可能取决于您将此事件发送到何处?如果在渲染滑块之前调度它,它将无法工作 解决方案可以是使用React.useffect:
function MySlider() {
React.useEffect(() => {
// dispatch it once mounted
window.dispatchEvent(new Event('resize'));
}, []);
return <div>Your stuff</div>
}
函数MySlider(){
React.useffect(()=>{
//一上马就派它去
dispatchEvent(新事件('resize'));
}, []);
归还你的东西
}
OpenLayer地图和D3图表也遇到了同样的问题。
问题是,当您分派窗口调整大小事件时,组件并没有得到装载。解决方法是在触发事件时引入延迟
setTimeout(
()=>{window.dispatchEvent(new Event('resize'));},
2500
);
它应该可以工作。您不能调用
.onresize
吗?jQuery(window).resize();-克里斯成功了!很好,但我认为您不需要使用jQuery。尝试window.onresize()代码>取而代之。另外,请不要回答问题内的问题。如果你是肯定的,这不是一个重复的现有问题,张贴你的答案作为实际答案。(还要注意,这似乎是一个问题,我们更应该修复滑块)