reactjs 不使用useState()而保留变量,无论是否重新呈现

mutmk8jj  于 2023-05-17  发布在  React
关注(0)|答案(1)|浏览(171)

我有point1point2变量,用于绘制canvas对象中的点。
我正在做一些测试。
比如说

  • 测试1
  • changePoint1()被调用,画布本身被重新渲染,所以这不是一个好方法。
  • 测试2
  • changePoint2()被调用时,画布不会被重新渲染,但是当从其他地方调用re-render时,这个变量不会被保留。

有没有不调用re-render的变量保持方法,不管re-render如何都保持变量?(可能像static变量?)

const ImagePreview = () =>{
    const [point1,setPoint1] = [0,0]; // test1
    var point2  = [10,10]; //test2
    
    const changePoint1(){
      setPoint1([10,10]) 
    }

    const changePoint2(){
      point2 = [20,20];
    }

    const rewriteCanvas(){
     // draw point1,point2 in canvas
    }

    return <canvas></canvas>
}
5gfr0r5j

5gfr0r5j1#

你可以使用一个参考。参见Referencing Values with RefsuseRef

const ref = useRef(/* initial value */);
// assign to or read ref.current later on without causing rerenders...

相关问题