反应中的更新状态

时间:2018-07-18 20:54:53

标签: reactjs

我不知道在React中更新状态。

state = {
    products : []
};

handleProductUpVote = (productId) => {
     const nextProducts = this.state.products.map((product) 
    => {
     if (product.id === productId) {
         return Object.assign({}, product, {
             votes: product.votes + 1,
         });
     } else {
         return product;
     }
     });
     this.setState({
         products: nextProducts,
     });
     }

为什么我们需要克隆对象?我们可以简单地写

if (product.id === productId) {
      product.votes =  
      product.votes + 1;
});

1 个答案:

答案 0 :(得分:0)

状态更新可以异步发生,委托状态的实际更改有助于确保事情不会出错。通过更改传递新对象,还可以让React进行(浅)检查以查看状态的哪些部分已更新,以及依赖该状态的哪些组件应重新呈现。