第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

使用材料ui進(jìn)行反應(yīng)的動(dòng)態(tài)表

使用材料ui進(jìn)行反應(yīng)的動(dòng)態(tài)表

我在將下面的代碼轉(zhuǎn)換為 reactJs 時(shí)遇到問(wèn)題,我面臨的問(wèn)題是在這里根據(jù)行/單元格的數(shù)量使用和更新表標(biāo)簽,但在反應(yīng)中我不想使用 createElement/appendChild,我正在使用 useState 來(lái)獲取計(jì)數(shù),但 Table 標(biāo)簽沒(méi)有按預(yù)期工作。不確定讓這個(gè)標(biāo)簽做出反應(yīng)或使用材料 ui 的方式是什么。鏈接:https ://codesandbox.io/s/muddy-bird-qu9bg?file=/src/DataTable.jsfunction CreateTable() {    var rowCtr;    var cellCtr;    var rowCnt;    var cellCnt;    var myTableDiv = document.getElementById("myDynamicTable");    var table = document.createElement('Table');    table.setAttribute("contenteditable", "true");    table.border = '1';    table.id = 'myTable';    var tableBody = document.createElement('Tbody');    table.appendChild(tableBody);    rowCnt = document.getElementById('txtrows').value;    cellCnt = document.getElementById('txtcols').value;    for (var rowCtr = 0; rowCtr < rowCnt; rowCtr++) {        var tr = document.createElement('tr');        tableBody.appendChild(tr);        for (var cellCtr = 0; cellCtr < cellCnt; cellCtr++) {            var td = document.createElement('td');            td.width = '120';            td.appendChild(document.createTextNode("Click me, Row:" + rowCtr + " Column:" + cellCtr));            tr.appendChild(td);        }    }    myTableDiv.appendChild(table);    }<table contenteditable = "true">    <tr>        <td>Row Count</td>        <td>Column Count</td>        <td></td>    </tr>    <tr>        <td><input type="text" id="txtrows" /></td>        <td><input type="text" id="txtcols"/></td>        <td><button onclick="CreateTable()">Create Table</button></td>    </tr></table><div id="myDynamicTable"></div>
查看完整描述

1 回答

?
慕田峪7331174

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超13個(gè)贊

你需要使DataTable.js文件像,


import React, { Fragment, useState } from "react";

import Table from "@material-ui/core/Table";

import TableHead from "@material-ui/core/TableHead";

import TableBody from "@material-ui/core/TableBody";

import TableCell from "@material-ui/core/TableCell";

import TableRow from "@material-ui/core/TableRow";

import Button from "@material-ui/core/Button";


export default function DataTable() {

  const [rowCount, setRowCount] = useState("");

  const [colCount, setColCount] = useState("");


  const [rowCountArray, setRowCountArray] = useState([]);

  const [colCountArray, setColCountArray] = useState([]);


  const [showTable, setShowTable] = useState(false);


  const CreateTable = () => {

     rowCountArray.length = 0;

     colCountArray.length = 0;


    for (let i = 1; i <= rowCount; i++) {

      rowCountArray.push(i);

    }

    setRowCountArray(rowCountArray);


    for (let i = 1; i <= colCount; i++) {

      colCountArray.push(i);

    }

    setColCountArray(colCountArray);


    setShowTable(true);

  };


  return (

    <>

      <Table>

        <TableHead>

          <TableRow>

            <TableCell>Row Count</TableCell>

            <TableCell>Col Count</TableCell>

            <TableCell></TableCell>

          </TableRow>

        </TableHead>

        <TableBody>

          <TableRow>

            <TableCell component="th" scope="row">

              <input

                type="text"

                id="txtrows"

                value={rowCount}

                onChange={(e) => setRowCount(e.target.value)}

              />

            </TableCell>

            <TableCell component="th" scope="row">

              <input

                type="text"

                id="txtcols"

                value={colCount}

                onChange={(e) => setColCount(e.target.value)}

              />

            </TableCell>

            <TableCell>

              <Button variant="contained" color="primary" onClick={CreateTable}>

                Create Table

              </Button>

            </TableCell>

          </TableRow>

        </TableBody>

      </Table>

      {showTable ? (

        <Table>

          <TableBody>

            {rowCountArray.map((row, index) => (

              <TableRow key={index}>

                {colCountArray.map((col, index) => (

                  <TableCell key={index}>

                    Row {row} - Col {col}

                  </TableCell>

                ))}

              </TableRow>

            ))}

          </TableBody>

        </Table>

      ) : null}

    </>

  );

}

單擊“創(chuàng)建表”按鈕,您可以創(chuàng)建一個(gè)函數(shù)并根據(jù)輸入的計(jì)數(shù)生成一個(gè)rowCount數(shù)組colCount,


    const CreateTable = () => {


      rowCountArray.length = 0;

      colCountArray.length = 0;


      for (let i = 1; i <= rowCount; i++) {

         rowCountArray.push(i);

      }

      setRowCountArray(rowCountArray);

        

      for (let i = 1; i <= colCount; i++) {

         colCountArray.push(i);

      }

      setColCountArray(colCountArray);

        

     setShowTable(true);

   };

然后使用以下方法,您可以生成具有相應(yīng)行和列的表,


{rowCountArray.map((row, index) => (

   <TableRow key={index}>

      {colCountArray.map((col, index) => (

        <TableCell key={index}>

          Row {row} - Col {col}

        </TableCell>

       ))}

   </TableRow>

 ))}


查看完整回答
反對(duì) 回復(fù) 2023-05-25
  • 1 回答
  • 0 關(guān)注
  • 119 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)