Sto provando a eseguire il rendering di una tela utilizzando React. La grafica all'interno della tela sarà gestita anche dal metodo Reazioni render
.Rendering/Ritorno tela HTML5 in ReactJS
Il codice corrente esegue il rendering di una tela con la grafica desiderata. Ma sto cercando un modo per restituire una tela con la mia grafica dal metodo render
. La ragione per cui voglio questo, è perché voglio che funzioni in "React Way".
Idealmente, vorrei che il mio codice per essere qualcosa di simile:
return(
<div>
<canvas id='my_canvas_with_graphics_rendered_in_react'></canvas>
</div>
);
primo luogo, voglio sapere se questo è ancora possibile. O se dovessi cercare un'alternativa.
Forse mi manca il punto di React, se questo è il caso per favore fatemelo sapere. Spero che ci sia una soluzione, perché da quello che ho letto React si presenta come lo V
in MVC
. Ecco perché, se possibile, questa sarebbe una soluzione perfetta per quello che sto cercando di fare. Non dovrei preoccuparmi del rendering all'interno della mia tela. Fornirei semplicemente i dati al componente e React re-renderà le modifiche.
Ho contrassegnato di nella dichiarazione return
in cui credo che il codice corretto dovrebbe andare.
Il codice HTML
:
<div id='wrapper'>
<canvas id='canvas'></canvas>
</div>
Il codice 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);
Speranza Mi sono spiegato.
Prima domanda: è importante se chiamo le mie routine di disegno grafico in 'componentDidMount' o' render'? – germ13
Seconda domanda: la gestione del canvas dall'interno di React (la sua creazione e il riferimento) sarebbe più di Reacts modo di fare le cose? La mia idea è di rendere questo componente parte di un set più ampio di componenti React. – germ13
Prima domanda: Sì, è importante. 'render' può essere chiamato qualsiasi numero di volte durante la vita dell'istanza del componente, mentre' componentDidMount' sarà chiamato una sola volta. Assicurati di implementare anche 'componentWillUnmount' e pulisci lì. –