初始状态下的数组值如下:
const [chartData, setChartData] = useState([["Type", "Counts"]]);
并从服务器检索以下值:
response.data:Object
Bird: 4
Cat: 8
Dog: 5
我需要这个数组:
const piedata = [
["Type", "Counts"],
["Bird", 4],
["Cat", 8],
["Dog", 5]
];
我正在尝试类似的方法,但是在每种情况下,我都会添加这3个元素作为外部列表的第2个元素,例如:[["Type", "Counts"], [["Bird", 4], ["Cat", 8], ["Dog", 5]]];
getData("/pets", body)
.then((response) => {
let array = Object.entries(response.data).map(([k, v]) => "[" + k + "," + v +"],")
chartData.push(array)
})
那么,什么是正确的方法来实现这一点呢?我应该同时使用setChartData
钩子和push
元素到外部数组吗?
也尝试了这个,但没有工作:
Object.entries(response.data).map(([k, v]) => chartData.push([ k + "," + v ] + ","))
1条答案
按热度按时间k4ymrczo1#
这里有很多错误:
1.你不能像那样推到状态,你必须使用
setChartData
"[" + k + "," + v +"],"
它是字符串而不是数组你应该做什么:
香草js证明它的工作: