Я пытаюсь создать графический редактор с ReactJS. У меня есть компонент Workspace
. Этот компонент рисует объекты с помощью холста. Компонент Workspace
— это компонент класса React. Я не могу получить элемент HTML, который находится в методе render()
.
Я не мог использовать document.getElementById(..)
, я решил использовать React Refs. Это больше похоже на чистоту.
А у меня такая ошибка:
TypeError: Не удается прочитать свойство getContext со значением null
import React, { Component } from 'react';
import './Workspace.css';
// Workspace component is resposiable for drawing defferent elements on the screen
// It uses canvas API to draw elements and the stuff like that
export default class Workspace extends Component {
constructor(props) {
// Calling parent`s constructor function
super(props);
// All objects that will be drawn
this.objects = [];
// Creating the `canvasRef` ref for having access to the canvas element
this.canvasRef = React.createRef();
// Getting the canvas element, using the`canvasRef` ref
const canvas = this.canvasRef.current;
// Creating context
this.context = canvas.getContext('2d');
}
render() {
return (
<div className="workspace">
<canvas className="canvas" ref={this.canvasRef}></canvas>
</div>
)
}
}