1.TouchableOpacity按鈕元件:在UI中使用了 TouchableOpacity
按鈕元件,當使用者點擊按鈕時,會觸發handleSubmitOrder
函數。
<TouchableOpacity
onPress={handleSubmitOrder}
style={{
flex: 0.4,
borderRadius: 5,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: 'orange',
}}>
<Text
style={{color: '#fff', fontWeight: 'bold', fontSize: 18}}>
送單
</Text>
</TouchableOpacity>
2.按鈕事件處理 - handleSubmitOrder:當按下「送單」按鈕後,系統會彈出一個確認視窗。這個視窗使用Alert.alert來實現,並包含兩個選項:「取消」和「確定」。
Alert.alert(
'確定提交訂單',
'您確定提交訂單嗎?',
[
{
text: '取消',
style: 'cancel',
},
{
text: '確定',
onPress: () => {
handleClickPostOrder();
},
},
],
{cancelable: false},
);
3.發送API請求:handleClickPostOrder 函數負責發送API請求以提交訂單。此函數建立一個包含訂單詳細資訊的data物件,然後使用axios.post()方法將這些資料發送到指定的API。
const handleClickPostOrder = () => {
let data = {
id: Math.random().toString(36).substr(2, 9),
M_Name: '測試',
M_DT: '2023-09-23 10:30:00',
M_ImgSrc: '',
OrderType: 2,
CIdx: 1,
Price: 30,
Progress: 0,
};
axios
.post(
'[uri]/Orders',
data,
)
.then(response => {
Alert.alert('已送單!');
})
.catch(error => {
Alert.alert('送單失敗!');
});
};