小编Mr *_*les的帖子

反应:第一次点击时状态不会更新

我正在处理购物车示例。

每次单击时,我都会将项目的一个对象添加到 Cart 数组中。当我第一次单击添加购物车按钮时,它不会更新购物车,但会在第二次更新。

虽然,当我单击渲染返回语句中的 viewCart 按钮时,它显示了购物车中商品的准确数量。请参阅下面的代码:

我需要能够在不单击 viewCart 按钮的情况下查看购物车中商品的准确数量。产品来自本地JSON文件,所以我认为加载JSON文件没有任何问题。

constructor (props) {
    super(props);
    this.state = {
        Cart: []
    };
    this.addItem = this.addItem.bind(this);
}

addItem(productKey) {
    this.setState({ Cart: [...this.state.Cart, ProductsJSON[productKey]]})
    console.log(this.state.Cart);
}

viewCart() {
    console.log(this.state.Cart);
}

render() {
  const AllProducts = ProductsJSON;

  var Products = AllProducts.map((item) => {
    return (
            <div className="col-4" key={item.key} >
                <a onClick={() => this.addItem(item.key)} className="btn btn-primary btn-sm">Add to Cart</a>
            </div> 
        )
})

return (
        <div className="container">
            <div className="row">
                {Products}
                <a onClick={() => this.viewCart()} className="btn btn-primary btn-sm">viewCart</a> …
Run Code Online (Sandbox Code Playgroud)

javascript jsx setstate reactjs

3
推荐指数
1
解决办法
7632
查看次数

标签 统计

javascript ×1

jsx ×1

reactjs ×1

setstate ×1