如何初始化從API到變量的響應,以便我可以在我的render()
函數中使用它?爲什麼component.setState
不工作? 錯誤:
遺漏的類型錯誤:未定義無法讀取屬性「用戶名」(......)如何在React中渲染來自API響應的數據?
class Main extends React.Component {
constructor(props) {
super(props);
this.state = {
data: 23
};
}
componentDidMount() {
var component = this;
fetch('https://fcctop100.herokuapp.com/api/fccusers/top/alltime')
.then(function(response) {
return response.json()
}).then(function(json) {
var data = json;
console.log(data[0]);
console.log(data[0].username);
component.setState({
data: json
})
})
}
render() {
return (
<div>
<h1>elo{this.state.data[0].username}</h1>
</div>
);
}
}
const docs = document.getElementById('root');
ReactDOM.render(<Main/> , docs);
你應該有一個後衛聲明/三元運營商在渲染方法,如果你打算使用一些數據,這將在稍後的時間到達。就像這樣:var someData = this.state.data [0] .username || 「」; –
@JustinHerter console.logs在獲取日誌中記錄正確的數據 – KAT