我想在一个页面上显示 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} />],
};
}
我有一个切换按钮,点击它应该切换两个板。switch()
功能-
switch() {
let a = this.state.boards[0];
let b = this.state.boards[1];
this.setState({
boards: [b, a],
});
console.log(this.state.boards);
}
假设我在顶部画布上画了一棵树,在底部画了一朵花。点击切换后,两个画布元素切换成功(在开发者工具中可见),但树仍然出现在顶部,花朵在底部,即看起来好像画布没有在网页上切换。
我尝试将ctx.save()
andctx.restore()
用于画布,但这似乎也不起作用。
我很困惑为什么会这样?我在这里做错了什么?