使用React调整Div的大小

我有一个Drawer导航,我正在尝试实现鼠标拖动调整大小选项。 我添加了一个div元素,在该元素上监听onmouseDown事件。 当此事件发生时,我为mouseup事件添加了一个事件侦听器,以在释放鼠标时更新抽屉宽度。

const handleMouseDown = (event: MouseEvent) => {
  document.addEventListener('mouseup',handleMouseUp)
}

const handleMouseUp = (event: any) => {
    const minWidth = 57
    const maxWidth = 600
    if (event.clientX > minWidth && event.clientX < maxWidth) {
      updateLayout({ ...layout,drawerWidth: event.clientX })
    }
  }

<Dragger onmouseDownCapture={handleMouseDown}/>

在第一次尝试时一切正常,但是之后mouseDown事件不会添加mouseup事件侦听器。

song0007 回答:使用React调整Div的大小

我认为您可能需要在每次鼠标移开后删除mouseup事件监听器,否则该事件监听器将多次堆叠并引起问题。

const handleMouseUp = (event: any) => {
    const minWidth = 57
    const maxWidth = 600
    if (event.clientX > minWidth && event.clientX < maxWidth) {
        updateLayout({ ...layout,drawerWidth: event.clientX })
    }
    document.removeEventListener('mouseup',handleMouseUp)
}
本文链接:https://www.f2er.com/3132828.html

大家都在问