我正在使用實時財務數據,例如股票和貴金屬價格。我每隔幾秒就會打一個API來獲取給定資產的最新價格並將該價格存儲在狀態中。但是,我總是用一個數組或數組對象更新狀態,但是這個數據只是一個字符串。如果最新的GET請求返回與當前設置不同的值,則覆蓋該值。當狀態項不是集合時,SetState在React中的正確方法
我只是想知道什麼最佳做法是更新狀態中的簡單字符串?
我的狀態構造函數:
this.state = {
goldPrice: '',
items: {}
}
我的API請求:
fetchGoldPrice() {
jQuery.ajax({
method: 'GET',
headers: {'Access-Control-Allow-Origin': '*'},
url: Constants.API_URL,
success: (gold) => {
this.updateGoldPrice(gold.gold_bid_usd_toz);
}
});
}
如果成功抓取電話updateGoldPrice並將在返回的價格。
updateGoldPrice(goldPrice) {
this.setState({ goldPrice: goldPrice });
}
然後我看看它的價格每30秒:
componentDidMount() {
this.fetchGoldPrice();
this.timer = setInterval(
() => this.fetchGoldPrice(), 30000);
}
我只是好奇,如果這是這樣做的好嗎方式。因爲一切我讀到說做這樣的事情:
addItem(item) {
const items = {...this.state.items};
items[item] = item;
this.setState({ items: items });
}
但我不會存儲在陣列中的所有價格,我只想一個最新的價格。
謝謝。