ReactJs如何删除一个状态项

Posted

技术标签:

【中文标题】ReactJs如何删除一个状态项【英文标题】:ReactJs How to Delete state item by one 【发布时间】:2018-06-29 12:59:12 【问题描述】:

例如,如果我将 10 个相同的商品添加到一个购物车中,我如何将其减少到 9 个。

this.state = 
   cart = 

this.props.cart[key]
//tshirt: 10

谢谢。

【问题讨论】:

您需要提供更多详细信息。 【参考方案1】:

解决了。对不起,如果这看起来太菜鸟问题。答案是,一如既往的愚蠢,一直在我的眼皮底下。感谢您的回答,您的回答很有帮助。

cart[key] = cart[key] - 1;
    if (cart[key] < 0)
        cart[key] === 0;
    
    else
    this.setState(cart)

【讨论】:

【参考方案2】:

首先this.statethis.props 不同,因此请查看您的代码this.props.cart === undefined。除非您的代码的某些部分没有看到。 这就是说this.state.cart 就像任何其他 js 对象一样,因此假设“键”是属性名称,即使用键的this.state.cart['shirt-10'] = ...propsOfShirt10 you can just usedelete`。

delete this.state.cart['shirt10']

【讨论】:

只是一个方面,老实说不关我的事,如果你是 js 新手,请不要从 react 开始。学习基础知识。有了新功能,你可以在 js 上走得很远。【参考方案3】:

我假设你想递减,所以你可以做这样的事情

this.setState(tshirt: this.state.tshirt - 1)

【讨论】:

以上是关于ReactJs如何删除一个状态项的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ReactJs Redux 中删除/设置状态数组的“null”嵌套属性?

单击事件后如何从 ReactJS 中的数组中删除对象

如何在reactjs中单击删除表格行?

如何在reactjs中删除导入的css

如何删除 Material UI DataGrid (Reactjs) 中的特定行

如何使用reactjs在动态表中单击删除所有行