Я пытаюсь сделать холст с помощью React. Графика внутри холста также будет обрабатываться с помощью метода Reacts render
.
В текущем коде выполняется визуализация холста с графикой, которую я хочу. Но я ищу способ вернуть холст с моей графикой из метода render
. Причина, по которой я хочу это, - это то, что я хочу, чтобы это работало в "Реагировать".
В идеале я бы хотел, чтобы мой код был примерно таким:
return(
<div>
<canvas id='my_canvas_with_graphics_rendered_in_react'></canvas>
</div>
);
Во-первых, я хочу знать, возможно ли это. Или я должен искать альтернативу.
Возможно, я пропустил пункт "Реакт", если это так, пожалуйста, дайте мне знать. Надеюсь, что есть решение, потому что из того, что я прочитал, React рекламирует себя как V
в MVC
. Вот почему, если это возможно, это было бы идеальным решением для того, что я пытаюсь сделать. Мне не пришлось бы беспокоиться об рендеринге внутри моего холста. Я просто предоставил данные компоненту, и React повторно изменил бы эти изменения.
Я отмечен в инструкции return
, где я считаю, что правильный код должен идти.
Код HTML
:
<div id='wrapper'>
<canvas id='canvas'></canvas>
</div>
Код jsx
:
var MyCanvas = React.createClass({
render:function(){
var line = this.props.lines;
var ctx = this.props.canvas.getContext("2d");
ctx.strokeStyle = 'rgba(0,0,0,0.5)';
ctx.beginPath();
ctx.moveTo(line[0].x0, line[0].y0);
// .... more code .....
ctx.stroke();
return(
<div>
/* *********************************
??? RETURN MY RENDERED CANVAS
WITH GRAPHIC LINES. ????
This is where I want to return the canvas
********************************* */
</div>
);
}
});
var wrapper = document.getElementById('wrapper');
var canvas = document.getElementById('canvas');
var line1 = { x0: 0, y0: 10, x1: 20, y1: 30 };
var line2 = { x0: 40, y0: 50, x1: 60, y1: 70 };
var myCanvas = <MyCanvas canvas={ canvas } lines={ [line1, line2] } />;
React.render(myCanvas, wrapper);
Надеюсь, я поняла.