昨天我們介紹了如何規劃使用列表元件 FlatList
來渲染資料。現在,接下來的步驟就是準備資料,並將這些資料填入列表元件中。
開發流程:
為資料設定一個狀態,初始為空陣列
const [menu, setAllMenu] = useState([]);
定義函式來處理 API 請求
const handleClickGetMenu = () => {
axios
.get(
'https://json-server-vercel-w33n-git-main-raychen1996.vercel.app/Menus'
)
.then(response => {
console.log(response.data);
setAllMenu(response.data); // 將獲取的資料更新到狀態
setIsLoading(false); // 停止載入狀態
setRefreshing(false); // 停止刷新
})
.catch(error => {
console.error('Error fetching menu:', error);
setIsLoading(false); // 停止載入狀態
});
};
axios.get('URL', [config])
用法:
axios.get('URL')
.then(response => {
// 成功取得響應後的處理邏輯
});
response: 回調函式的參數,包含伺服器回傳的數據和其他相關資訊(如狀態碼、headers 等)。
axios.get('URL')
.catch(error => {
// 處理錯誤的邏輯
});
error: 回調函式的參數,包含錯誤訊息及其他相關資訊。
使用 FlatList 渲染資料
<FlatList
data={menu} // 將資料設置到 data 屬性
renderItem={renderItem}
keyExtractor={item => item.id.toString()}
refreshControl={
<RefreshControl refreshing={refreshing} onRefresh={onRefresh} />
}
/>
明天將分享將每一筆餐點加入購物車~