3 回答
TA贡献1847条经验 获得超7个赞
使用先前状态更改状态的方式是这样的:
this.setState(prevState => {
return {HTMLTable: prevState.HTMLTable + whatever you want};
});
TA贡献1911条经验 获得超7个赞
你不应该在 React 的循环中使用 setState 函数。通过查看您的代码,您不需要在循环中使用状态变量。你可以做的是拥有一个局部变量,在循环内更新它,最后将它存储回状态。
class MyComponent extends Component {
constructor(props) {
super(props)
this.state = {
HTMLTable : ""
}
createGrid () {
let HTMLTable = ""; // Use local varibale
for(let row = 0; row <= 20;row++)
{
let currentHTMLRow = `<tr id = "Row ${row}">`;
for(let col = 0; col < 50; col++)
{
let newNodeId = `${row}_${col}`;
let NodeClass = "unvisited";
currentHTMLRow = currentHTMLRow +`<td id = "${newNodeId}" class = "${NodeClass}"></td>`
}
HTMLTable += `${currentHTMLRow}</tr>`;
}
this.setState({HTMLTable}); // Store it back to the state.
let chart = document.getElementById("grid");
chart.innerHTML = HTMLTable;
}
}
添加回答
举报