【发布时间】:2021-05-29 17:36:08
【问题描述】:
我是 React 的初学者,我想按照官方教程一步一步来:创建井字游戏。我很难,因为我学习使用函数,而不是类。当我尝试实现它时,我收到一个错误“第 7:5 行:'setSquares' 未定义”。我想我需要将一些数据从 RenderSquare 函数传递给 handleClick 但我不知道该怎么做。这是 React 人提供的官方示例:
我的愚蠢代码:
import Square from './Square';
import { useState } from 'react';
function handleClick(i) {
const squares = squares.slice();
squares[i] = 'X';
setSquares({ squares });
}
function RenderSquare(i) {
const [squares, setSquares] = useState(Array(9).fill(null));
return (
<>
<Square
value={squares[i]}
onClick={() => {
handleClick(i);
}}
/>
;
</>
);
}
【问题讨论】:
-
你需要把
handleClick函数放在RenderSquare函数组件里面。目前,handleClick函数超出了RenderSquare的范围。 -
非常感谢您的帮助:)
标签: javascript reactjs