由于性能問題,為了跑得更快,我想一個一個地刷新一個格子的單元格。我已經成功地能夠通過以下方式更改這些單元格的設計: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;}
React:通過id更新元素的數據變量
慕慕森
2023-04-14 14:59:44