老师求救啊react点击效果出不来

老师求救啊react点击效果出不来

import { useState } from 'react';

import Square from './square';

function getNextLetter(squares) {

  // 在squares中过滤查找

  const filledSquares = squares.filter(item => (item === "x" || item === "0"));

  // 如果已经有X那么下一个就是0

  const filledNumber = filledSquares.length;

  // 如果有0则下一个是x

  const nextLetter = (filledNumber % 2 === 0) ? "x" : "0";

  return nextLetter

}

function Board() {

  const [squares, setSquares] = useState(Array(9).fill(null))

  const nextLetter = getNextLetter(squares);

  const status = nextLetter

  const clickHandler = (index) => {

    // 当发生点击之后,把当前点击的格子存入常量

    const currentSquare = squares[index];

    // 当前格子没有被点击则向下执行

    if (currentSquare === null) {


      // 创建一个新的squares(新数组)

      const newSquares = squares.slice();

      // 将下一个X或者是0存入新数组中的index对应的一项中去

      newSquares[index] = nextLetter;

      // 最后更新数组,这样视图才能更新

      setSquares(newSquares);

    }


    // squares[index] = "x"

    // setSquares(squares)

  }

  return (

    <>

      <div>{status}</div>

      <div className="boare-row">

        <Square value={squares[0]} index={0} onClick={clickHandler} />

        <Square value={squares[1]} index={1} onClick={clickHandler} />

        <Square value={squares[2]} index={2} onClick={clickHandler} />

      </div>


      <div className="boare-row">

        <Square value={squares[3]} index={3} onClick={clickHandler} />

        <Square value={squares[4]} index={4} onClick={clickHandler} />

        <Square value={squares[5]} index={5} onClick={clickHandler} />

      </div>

      <div className="boare-row">

        <Square value={squares[6]} index={6} onClick={clickHandler} />

        <Square value={squares[7]} index={7} onClick={clickHandler} />

        <Square value={squares[8]} index={8} onClick={clickHandler} />

      </div>

    </>

  )

}

export default Board;



正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕久久 2023-10-06 17:03:13

同学你好,建议检查Square这个组件中的代码。当前代码,没发现什么问题。

祝学习愉快!

  • 提问者 球球不一般 #1

    检查乃部分啊,截个图

    2023-10-06 17:05:36
  • 提问者 球球不一般 #2

    https://img1.sycdn.imooc.com//climg/651fcebf0940d5df08410274.jpg

    2023-10-06 17:09:23
  • 提问者 球球不一般 #3

    没发现问题还让我检查这个不矛盾吗,

    2023-10-06 17:13:10
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师