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

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

React 中的 insertRow() 和 appendChild() 等效

React 中的 insertRow() 和 appendChild() 等效

開滿天機 2021-09-30 16:47:55
我正在嘗試在 React 中使用此代碼:export const JsonToTable = (jsonArr) => {var cols = [];for (var i = 0; i < jsonArr.length; i++) {    for (var key in jsonArr[i]) {        if (cols.indexOf(key) === -1) {            cols.push(key);        }    }}var table = document.createElement("table");var tr = table.insertRow(-1);             for (var i = 0; i < cols.length; i++) {    var th = document.createElement("th");     th.innerHTML = cols[i];    tr.appendChild(th);} for (var i = 0; i < jsonArr.length; i++) {     tr = table.insertRow(-1)     for (var j = 0; j < cols.length; j++) {         var tabCell = tr.insertCell(-1);         tabCell.innerHTML = jsonArr[i][cols[j]];     } } return table;}但是 React 抱怨這些方法:insertRow()appendChild()innerHTML我知道innerHTML 的等價物是dangerouslySetInnerHTML 但我不想使用它。如果我按原樣運行此代碼,則會得到返回的對象(表)不是 React 類型的錯誤。如何將此函數編寫為 React 組件?我想要實現的是從 json 動態創建一個表。如果有另一種方法可以實現這一點,我也可以研究一下。謝謝。
查看完整描述

1 回答

?
眼眸繁星

TA貢獻1873條經驗 獲得超9個贊

將要在表格中呈現的數據放入組件的狀態。


當你想改變它時,改變狀態。


render 函數會自動更新 DOM。


就此而言,因為看起來您并沒有在內部對其進行更改……只需將解析后的 JSON 作為道具傳遞即可。


您甚至可以使用函數組件。


const Table = ({ array }) => (<table><tbody>{array.map(generateRow)}</tbody></table>);

const generateRow = rowData => (<tr>{rowData.map(generateCell)}</tr>);

const generateCell = cellData => (<td>{cellData}</td>);


查看完整回答
反對 回復 2021-09-30
  • 1 回答
  • 0 關注
  • 495 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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