Canvas 图形拖放
要为 Canvas 上的任何节点启用拖放,只需将 draggable 属性传给组件。
拖放图形时,建议将图形位置保存到应用的数据存储中。可以为此使用 onDragMove 和 onDragEnd 事件。
import React from 'react'; import { Stage, Layer, Text } from 'react-konva'; const App = () => { const [isDragging, setIsDragging] = React.useState(false); const [position, setPosition] = React.useState({ x: 50, y: 50, }); return ( <Stage width={window.innerWidth} height={window.innerHeight}> <Layer> <Text text="Draggable Text" x={position.x} y={position.y} draggable fill={isDragging ? 'green' : 'black'} onDragStart={() => { setIsDragging(true); }} onDragEnd={(e) => { setIsDragging(false); setPosition({ x: e.target.x(), y: e.target.y(), }); }} /> </Layer> </Stage> ); }; export default App;