相关疑难解决方法(0)

使用初始状态来反应useState钩子事件处理程序

我仍然不停地做出反应,但仍在努力查看我在这里做错了什么。我有一个用于调整面板大小的组件,在边缘的onmousedown上更新状态值,然后为mousemove使用事件处理程序,该事件处理程序使用该值,但是在值更改后似乎没有更新。

这是我的代码:

export default memo(() => {
  const [activePoint, setActivePoint] = useState(null); // initial is null

  const handleResize = () => {
    console.log(activePoint); // is null but should be 'top|bottom|left|right'
  };

  const resizerMouseDown = (e, point) => {
    setActivePoint(point); // setting state as 'top|bottom|left|right'
    window.addEventListener('mousemove', handleResize);
    window.addEventListener('mouseup', cleanup); // removed for clarity
  };

  return (
    <div className="interfaceResizeHandler">
      {resizePoints.map(point => (
        <div
          key={ point }
          className={ `interfaceResizeHandler__resizer interfaceResizeHandler__resizer--${ point }` }
          onMouseDown={ e => resizerMouseDown(e, point) }
        />
      ))}
    </div>
  ); …
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6 reactjs react-hooks

4
推荐指数
5
解决办法
791
查看次数

标签 统计

ecmascript-6 ×1

javascript ×1

react-hooks ×1

reactjs ×1