iT邦幫忙

2022 iThome 鐵人賽

DAY 28
0
Software Development

.NET Core與React組合開發技系列 第 28

.NET Core與React組合開發技_第28天_對 UI 的小調整(添加到購物車效果)

  • 分享至 

  • xImage
  •  

雖然目前功能是work不過好像還少了一些部份。
當客戶按下“添加”按鈕時,實際上並沒有任何視覺反饋。它似乎什麼也沒做。
通常是否可以出現某種簡單的消息,表明該商品已添加到購物車中?

其次,我們認為最好在查看購物車時顯示每件商品的總數量。
因此,每個產品一條線,以及反映客戶將該產品添加到購物車的次數的總數量。

客戶的視覺反饋在這裡非常簡單。
也許從添加項目時僅顯示一些文本開始,它會出現幾秒鐘然後消失。
為此,可能值得探索 javascript 的 setTimeout() 方法;

對於第二個要求,目前最簡單的選擇可能是在任何給定的購物車中為每個產品
存儲一條記錄,並在每次添加該項目時增加數量欄位。
這將使顯示購物車變得非常簡單,因為我們可以
檢索購物車行並使用該數據在屏幕上顯示某些內容。

import React, { Component } from 'react';
import Axios from 'axios';

export default class AddToCart extends Component {

    state = {}

    constructor(props) {
        super(props);

        this.onSubmit = this.onSubmit.bind(this);
    }

    async onSubmit(e) {
        e.preventDefault();        
        let request = { productId: this.props.productId };
        let sessionId = localStorage.sessionId;
        if (sessionId) {
            request.sessionId = sessionId;
        }
        let result = await Axios.post('/api/cart', request);
        localStorage.sessionId = result.data.sessionId;
        this.setState({ itemJustAdded: true });
        setTimeout(() => this.setState({ itemJustAdded: false }), 6000);
    }

    render() {
        return <form onSubmit={this.onSubmit}>
            <div className="form-row">
                <div className="form-group">
                    <button className="btn btn-primary form-control" type="submit">
                        Add to Cart
                    </button>
                </div>
            </div>
            {this.state.itemJustAdded && <span className="alert alert-primary">Item added to cart</span>}
        </form>;
    }

}

https://ithelp.ithome.com.tw/upload/images/20221009/20107452jvL97pDS2D.png


上一篇
.NET Core與React組合開發技_第27天_新增添加購物車單元測試與導入session機制
下一篇
.NET Core與React組合開發技_第29天_單擊時禁用按鈕
系列文
.NET Core與React組合開發技30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言