如何在React Native中删除所有道具?

时间:2018-09-17 10:45:21

标签: javascript reactjs object react-native javascript-objects

我正在与React Native woocommerce API一起构建一个Android应用。我已经完成了所有主要功能,但是结帐成功后,无法从购物车中移除所有产品。

const { cart } = this.props;

该道具由商品的名称,图片,数量,价格和产品编号组成。

我尝试了

const { cart } = this.props;
          cart.forEach(function(element) {
           delete element.id;
           delete element.price
           //and all elements
          });

这将删除属性,但是当我打开购物车页面时,这将显示未定义的对象错误。如何删除对象推车本身。

2 个答案:

答案 0 :(得分:1)

react中的道具是只读的,这意味着它们不能被删除,但是您可以通过将购物车道具设置为状态然后更新状态来实现想要实现的功能。 您可以执行以下操作:

constructor(props){
  super(props);
  this.state = {
    cart: props.cart
  }
}

然后可以使用setState更新状态。

this.setState({cart: UpdatedCart}):

答案 1 :(得分:0)

你不能删除反应中的道具。 react组件的prop是不可变的,不应被该组件更改。

如果您需要在本地处理数据,则可以使用组件的状态,或者更好地创建prop数据的本地副本。