在React Konva中显示用户单击的形状,可以通过以下步骤实现:
Stage
和Layer
组件来创建舞台和图层。useState
钩子来创建一个名为shapes
的状态变量。Circle
、Rect
等组件来表示形状。shapes
数组中。可以使用setShapes
函数来更新状态。shapes
数组中的数据来渲染用户单击的形状。可以使用map
方法遍历shapes
数组,并为每个形状创建一个Konva组件。以下是一个示例代码:
import React, { useState } from 'react';
import { Stage, Layer, Circle } from 'react-konva';
const ShapeDisplay = () => {
const [shapes, setShapes] = useState([]);
const handleStageClick = (e) => {
const { offsetX, offsetY } = e.evt;
const shapeData = {
x: offsetX,
y: offsetY,
radius: 50, // 可根据需求设置形状的属性
};
setShapes([...shapes, shapeData]);
};
return (
<Stage width={window.innerWidth} height={window.innerHeight}>
<Layer>
{shapes.map((shape, index) => (
<Circle
key={index}
x={shape.x}
y={shape.y}
radius={shape.radius}
fill="red"
/>
))}
</Layer>
</Stage>
);
};
export default ShapeDisplay;
在上述示例中,用户在Konva舞台上单击时,会创建一个圆形形状,并将其添加到shapes
数组中。然后,通过map
方法遍历shapes
数组,在舞台上渲染所有的形状。
这是一个简单的示例,你可以根据实际需求进行修改和扩展。对于更复杂的形状和交互,你可以使用Konva提供的其他组件和功能来实现。
领取专属 10元无门槛券
手把手带您无忧上云