亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

單擊時如何在 <td> 中插入組件

單擊時如何在 <td> 中插入組件

四季花海 2023-05-25 16:34:44
我在 td 標簽中插入 React 組件時遇到問題。該組件應插入到被單擊的那個 td 中。如您所見,每個 td 都有用于checkPlayer函數的onClick事件偵聽器。此函數檢查符號狀態的值,并根據該值將 X 組件或 O 組件插入到該特定 td 中。你們能幫我如何渲染這樣的組件嗎?當前的方法只寫[object object]我的目標——輸出<td>{<X />}</td>X組件,O組件幾乎相同import React from 'react';//stylesimport './X.scss';function X(){    return(        <div className="X">            <p>X</p>        </div>    )}export default X;應用程序.jsfunction App() {  const [sign,setSign] = useState(true)  function checkPlayer(e){    //1st player    if(sign === true){      e.target.innerHTML = <X />;            setSign(false);    }          //2nd player    if(sign === false){      e.target.innerText = <O />;      setSign(true);    }}App.js 的 HTML 部分  return (    <div className="App">      <div className="container">        <table>          <tbody>            <tr>              <td onClick={checkPlayer}></td>              <td onClick={checkPlayer}></td>              <td onClick={checkPlayer}></td>            </tr>            <tr>              <td onClick={checkPlayer}></td>              <td onClick={checkPlayer}></td>              <td onClick={checkPlayer}></td>            </tr>            <tr>              <td onClick={checkPlayer}></td>              <td onClick={checkPlayer}></td>              <td onClick={checkPlayer}></td>            </tr>          </tbody>        </table>      </div>    </div>  );}
查看完整描述

1 回答

?
LEATH

TA貢獻1936條經驗 獲得超7個贊

干得好。我玩過它,這應該給你一個很好的方向。(注意:您需要使用 [...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;



查看完整回答
反對 回復 2023-05-25
  • 1 回答
  • 0 關注
  • 124 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號