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()取而代之。另外,请不要回答问题内的问题。如果你是肯定的,这不是一个重复的现有问题,张贴你的答案作为实际答案。(还要注意,这似乎是一个问题,我们更应该修复滑块)