在函数返回的内部渲染表中的数组数据-ReactJS Javascript

时间:2019-07-18 01:47:59

标签: javascript arrays reactjs

我只是在学习reactjs和javascript,并尝试使用我拥有的数组数据呈现表。

我找到了一个关于材料UI的示例,说明了它们如何完成操作,但是放入了常量数组。

我的数组对象看起来像这样: 数组= [对象,对象,对象,对象,对象](5) 详细地 : 数组>

0 {RowNumber: 1, AssetId: 324, TagNumber: "", SerialNumber: "776", …}
1 {RowNumber: 2, AssetId: 233, TagNumber: "", SerialNumber: "32", …}
2 {RowNumber: 3, AssetId: 266, TagNumber: "", SerialNumber: "45", …}
3 {RowNumber: 4, AssetId: 887, TagNumber: "", SerialNumber: "23", …}
4 {RowNumber: 5, AssetId: 44, TagNumber: "", SerialNumber: "23", …}

我有以下数组:

myResponse = [];

以下是我试图自定义但不适用于我的材料UI中的代码:

  const classes = useStyles();
  getAssetList();
  return (
    <Paper className={classes.root}>
      <Table className={classes.table}>
        <TableHead>
          <TableRow>
            <StyledTableCell>RowNumber</StyledTableCell>
            <StyledTableCell align="right">AssetId</StyledTableCell>
            <StyledTableCell align="right">TagNumber</StyledTableCell>
            <StyledTableCell align="right">SerialNumber</StyledTableCell>
            <StyledTableCell align="right">xyz</StyledTableCell>
          </TableRow>
        </TableHead>
        <TableBody>
          {myResponse.map(res => (
            <StyledTableRow key={res[0]}>
              <StyledTableCell component="th" scope="row">{res[0]}</StyledTableCell>
              <StyledTableCell align="right"><Link to={"/assetlist"} style={{ textDecoration: 'none' }}>{res[1]}</Link></StyledTableCell>
              <StyledTableCell align="right">{res[2]}</StyledTableCell>
              <StyledTableCell align="right">{res[3]}</StyledTableCell>
              <StyledTableCell align="right">{res[4]}</StyledTableCell>
            </StyledTableRow>
          ))}
        </TableBody>
      </Table>
    </Paper>
  );
}

我不确定如何在表中正确呈现数组myResponse中的数据。上面的代码对我来说不正确。

有人可以指出一些好的教程来理解这一点,还请告诉我如何正确实现吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

Map将遍历您的数组,并为每个元素(在本例中为StyledTableRow)呈现一个组件。因此,在每次迭代中,您都可以访问 元素-即对象-位于索引处。您尝试通过索引访问的“ res”实际上是数组中的元素之一,即,您的一个对象(地图已经在处理迭代),我对对象进行了解构以使其更容易使用在访问其属性方面。不能完全确定要如何显示属性中的数据,但是这里有概念。

 {myResponse.map(({ RowNumber, AssetId, TagNumber, SerialNumber }) => (
            <StyledTableRow key={RowNumber}>
              <StyledTableCell component="th" scope="row">{RowNumber}</StyledTableCell>
              <StyledTableCell align="right"><Link to={"/assetlist"} style={{ textDecoration: 'none' }}>{RowNumber}</Link></StyledTableCell>
              <StyledTableCell align="right">{AssetId}</StyledTableCell>
              <StyledTableCell align="right">{SerialNumber}</StyledTableCell>
              <StyledTableCell align="right">{TagNumber}</StyledTableCell>
            </StyledTableRow>
          ))}