我正在尝试在React.js前端显示来自本地API的数据。
它显示的是一个只包含表头的空白表,但表中没有条目。 JSON来自API,就像我在console.log(this.state.cards)中一样,它在命令行上记录数组。
感谢任何帮助!
谢谢!
import React, { Component } from 'react';
import '../css/card.css';
import Card from './Card';
import CardTable from './CardTable.js';
import request from 'request';
class TopCards extends Component {
constructor() {
super();
this.state = {
cards: [],
};
}
componentDidMount() {
const url = "http://localhost:1200";
request({
url: url,
json: true
}, (error, response, body) => {
if (!error && response.statusCode === 200) {
for (let i in body) {
this.state.cards.push(body[i]);
}
}
})
}
render() {
if(this.state.cards) {
var cardList = this.state.cards.map(function(card){
return(
<CardTable key={card.cardName} card={card} />
);
});
}
return (
<div className="TopCards">
<h1>Top Cards This Week:</h1>
<br />
<table width="400">
<tr>
<th>Name</th>
<th>Count</th>
<th>Wins</th>
<th>Losses</th>
<th>Win %</th>
</tr>
{cardList}
</table>
</div>
)
}
}
export default TopCards;
答案 0 :(得分:1)
您需要setState
通知React您要呈现某些内容的事实。其次,您应该确保使用不可变数据结构。 push
或unshift
不会通知任何变更。
for (let i in body) {
this.setState({
cards: [
...this.state.cards,
body[i]
]
});
}