我试图触发调整大小而不实际调整屏幕大小,因为它修复了我的滑块。
window.dispatchEvent(new Event('resize'));
上面的代码不起作用,有没有人有任何其他方法可以在react中触发调整大小?
不得不使用jQuery:
jQuery(window).resize();
我试图触发调整大小而不实际调整屏幕大小,因为它修复了我的滑块。
window.dispatchEvent(new Event('resize'));
上面的代码不起作用,有没有人有任何其他方法可以在react中触发调整大小?
不得不使用jQuery:
jQuery(window).resize();
我认为你以错误的方式看待这个问题。
在初始视图期间,您永远不应该依赖调整大小。
所以你的滑块代码在处理图像时有一个典型的尺寸问题(在加载图像之前读取宽度)。
但如果你还想尝试那种方式
这可能取决于您在哪里发送此事件?如果在渲染 Slider 之前调度它,它将无法工作。
一个解决方案可能是使用 React.useEffect:
function MySlider() {
React.useEffect(() => {
// dispatch it once mounted
window.dispatchEvent(new Event('resize'));
}, []);
return <div>Your stuff</div>
}
OpenLayer Map 和 D3 图表也遇到了同样的问题。问题是当您调度该窗口调整大小事件时,组件未安装。解决方法是在触发事件时引入延迟。
setTimeout(
()=>{window.dispatchEvent(new Event('resize'));},
2500
);
它应该工作。