1 回答
TA贡献1936条经验 获得超6个赞
干得好。我玩过它,这应该给你一个很好的方向。(注意:您需要使用 [...values] 创建一个新数组而不是引用旧数组,以便 UI 重新呈现)。
import React, {useState, useEffect} from 'react';
import logo from './logo.svg';
import './App.css';
function App() {
const [sign,setSign] = useState(true);
const [values, setValues] = useState([["", " ", " "],[" ", " ", " "],[" ", " ", " "]]);
function updateValue(row, column){
var newValue = [...values];
newValue[row][column] = sign == true ? "X" : "O";
setSign(!sign);
setValues(newValue);
}
return (
<div>
<table>
<tbody>
<tr>
<td onClick={() => updateValue(0,0)}>{values[0][0]}</td>
<td onClick={() => updateValue(0,1)}>{values[0][1]}</td>
<td onClick={() => updateValue(0,2)}>{values[0][2]}</td>
</tr>
<tr>
<td onClick={() => updateValue(1,0)}>{values[1][0]}</td>
<td onClick={() => updateValue(1,1)}>{values[1][1]}</td>
<td onClick={() => updateValue(1,2)}>{values[1][2]}</td>
</tr>
<tr>
<td onClick={() => updateValue(2,0)}>{values[2][0]}</td>
<td onClick={() => updateValue(2,1)}>{values[2][1]}</td>
<td onClick={() => updateValue(2,2)}>{values[2][2]}</td>
</tr>
</tbody>
</table>
</div>
);
}
export default App;
添加回答
举报