react使用fabric.js渲染问题

102 阅读1分钟

问题

  • 动态传入图片正常,但重复渲染(第一种可能)

  • 图片显示正常,但拖动错误

  • 固定图片显示正常,但拖动正常

  • 有的项目拖动正常,有的不正常

  • 动态传入多张图片显示正常,但只能拖动一个图片、其他会消失

  • 测试正常,打包使用错误

可能的原因

  1. react的测试环境严格模式导致

    解决方法:将main.tsx中严格模式去掉

  2. 没有返回销毁导致(我认为大部分是这个导致的)

    解决方法:在初始化后返回销毁函数

useEffect(() => {
  const canvas = useInit(workspaceEl,menu,setActiveEl,setMenu);
  setCanvas(canvas);
  // 下面的return很重要(不知道为什么看的项目都没看见)
  return ()=>{
    canvas.dispose()
  }
}, [])