1

クラスの状態で配列に格納している1つのページに2つのキャンバスを表示したい。基本コード-

constructor(props) {
    super(props);
    this.myRef = React.createRef();
    this.myRef1 = React.createRef();
    this.state = {
        isDrawing: false,
        startX: 0,
        startY: 0,
        boards: [<canvas className="wb-canvas" ref={this.myRef} width={800} height={400} id={1} />, <canvas className="wb-canvas" ref={this.myRef1} width={800} height={400} id={2} />],
    };
}

クリックすると2つのボードを切り替えるスイッチボタンがあります。switch()関数-

switch() {
    let a = this.state.boards[0];
    let b = this.state.boards[1];
    this.setState({
        boards: [b, a],
    });
    console.log(this.state.boards);
}

キャンバスの上に木を描き、下に花を描いたとします。スイッチをクリックすると、2 つのキャンバス要素が正常に切り替わりますが (開発者ツールで表示されます)、ツリーは依然として上部に表示され、花は下部に表示されます。つまり、Web ページでキャンバスが切り替わっていないように見えます。

ctx.save()キャンバスに andを使用してみctx.restore()ましたが、それもうまくいかないようです。

なぜこれが起こっているのか混乱していますか?ここで何が間違っていますか?

4

0 に答える 0