【发布时间】:2021-12-23 18:44:20
【问题描述】:
我正在学习 ReactJS 中的表格,但无法在列中呈现获取的数据。 实际上,API 已被获取(在控制台中),但并未将其对象呈现为 Material UI 表中的列。
使用的 API = api.twelvedata.com/cryptocurrencies, 方法 = 获取,axios
我想以以下表格格式将 API 中的所有符号和货币报价呈现到表格中:
请帮忙,如果可能,请解释错误。
import React from 'react'
import { useState, useEffect } from 'react'
import axios from 'axios'
import Table from '@mui/material/Table';
import TableCell from '@mui/material/TableCell';
import TableContainer from '@mui/material/TableContainer';
import TableHead from '@mui/material/TableHead';
import TableRow from '@mui/material/TableRow';
import Paper from '@mui/material/Paper';
export default function BasicTable() {
const [data,setData] = useState([])
const columns = [
{field: 'symbol'},
{field: 'currency_quote'},
]
useEffect(()=>{
axios.get(`https://api.twelvedata.com/cryptocurrencies`)
.then(
(a)=>{
console.log(a.data)
setData(a.data.symbol)
}
)
.catch(
(b)=>{
console.log(Error)
}
)
},[])
return (
<TableContainer component={Paper}>
<Table sx={{ minWidth: 650 }} aria-label="simple table">
<TableHead>
<TableRow>
<TableCell>Stock Name</TableCell>
<TableCell>Quote</TableCell>
</TableRow>
</TableHead>
{data && columns.map(data=><div>{data.field}</div>)}
</Table>
</TableContainer>
);
}
【问题讨论】:
-
您肯定是要映射
data状态而不是列,对吧?我认为应该是{data && data.map(data=><div>{data.field}</div>)}。 -
@DrewReese - 非常感谢您的帮助,我的意思是从 API 中提取所有符号并在列中呈现,代码是否可以正常工作?
-
我不太确定我是否跟随。您能否更新您的问题,详细说明您希望从获取的数据中获得什么以及预期的输出是什么?
-
@DrewReese - 编辑了问题。希望这会有意义:D
标签: reactjs api rest react-hooks use-effect