我的画布功能组件太大。我想拆分Class Star
和useEffect
(初始化,动画)代码。
const Canvas = () => {
useEffect(() => {
const canvas = canvasRef.current;
const context = canvas.getContext('2d');
Class Star {
...
}
const init = () => {...};
const animate = () => {...};
...
}, [])
}
但是我对context
有问题,因为Class Star
和animate
使用了它。 init
使用canvas
。
使用useState
钩子:
const Canvas = () => {
const [canvas, setCanvas] = useState(null);
const [context, setContext ] = useState(null);
useEffect(() => {
setCanvas(canvasRef.current);
setContext(canvas.getContext('2d'));
Class Star {
...
}
const init = () => {...};
const animate = () => {...};
...
}, [])
}