Я работаю над проектом, где пользователь загружает структурную схему (инженерную схему).Когда я дважды щелкаю по нужному месту на холсте, включается механизм преобразования текста в текст и прослушиваю комментарии пользователей, а затем рисую маленький кружок с разными цветами и заполняю текст (количество) в этом месте.Я сохраняю комментарии, счетчики, координаты дуги и другие вещи в состоянии реакции и отображаю список в компоненте с помощью кнопок редактирования и удаления.Когда пользователь нажимает кнопку удаления.комментарий и другое свойство удаляются из состояния.
Я хочу удалить нарисованную дугу с холста.Как мне это сделать?
Я пробовал clearRect.Но это не работает в этом случае.
Пожалуйста, дайте мне знать.
componentDidMount() {
const img = this.refs.image;
const canvas = this.refs.canvas;
const ctx = canvas.getContext('2d');
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;
img.onload = () => {
ctx.drawImage(img, 0, 0, canvas.width, canvas.height);
ctx.font = "40px Courier";
ctx.fillText('Drawing 1', 200, 100);
}
}
drawCircle(x, y, getcolor) {
const canvas = this.refs.canvas;
const ctx = canvas.getContext("2d");
ctx.beginPath();
ctx.arc(x, y, 8, 0, Math.PI * 2, false);
ctx.strokeStyle = "black";
ctx.stroke();
ctx.fillStyle = getcolor;
ctx.fill();
ctx.closePath();
// Text
ctx.beginPath();
ctx.font = "20px Arial"
ctx.fillStyle = "#00538a";
ctx.textAlign = "center";
ctx.fillText(this.state.count, x , y - 20);
ctx.fill();
ctx.closePath();
}
remove(id) {
this.setState({
comments: this.state.comments.filter(c => c.id !== id)
});
const canvas = this.refs.canvas;
const ctx = canvas.getContext('2d');
const arc = this.state.comments.filter(c => c.id === id);
let x = arc[0].coordinates.x;
let y = arc[0].coordinates.y
console.log("TCL: Drawing -> remove -> arc", arc[0].coordinates);
ctx.beginPath();
ctx.arc(x, y, 8, 0, Math.PI * 2, false);
ctx.clip();
ctx.clearRect(x-8, y-8, 16,16);
}
Спасибо Встречаемся