由于性能问题,为了跑得更快,我想一个一个地刷新一个格子的单元格。我已经成功地能够通过以下方式更改这些单元格的设计:
document.getElementById(`cell-${cell.row}-${cell.col}`).className =
"cell cell-isPlaced";
每个单元格都有一个数据变量props.data.num,我想在更改其设计时以相同的方式刷新它。由于某些原因,下面的代码没有刷新网格上的数字(为了更容易理解,每个单元格的值为 0,我想将其更改为 1):
document.getElementById(`cell-${cell.row}-${cell.col}`).num = 1;
细胞:
const Cell = (props) => {
let cell = () => {
return (
<div
className={`cell ${getColor(props)}`}
id={`cell-${props.data.row}-${props.data.col}`}
>
{props.data.num}
</div>
);
};
return cell();
};
export default Cell;
元素的数据可以按照我想要的方式更改吗?(一般情况下,所有单元格都显示 0 num,这没有问题)。
网格渲染:
let grid = this.state.grid.map((row, index) => {
return (
<div key={index} className="row">
{row.map((cell, cellIndex) => {
return (
<Cell
key={cellIndex}
data={cell}
/>
);
})}
</div>
);
});
初始化期间单元格中的数据:
function createGrid(props) {
let grid = [];
for (let i = 0; i < props.rows; i++) {
grid.push([]);
for (let j = 0; j < props.columns; j++) {
grid[i].push({
row: i,
col: j,
num: 0,
});
}
}
return grid;
}
宝慕林4294392
相关分类