我不知道在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;
});
答案 0 :(得分:0)
状态更新可以异步发生,委托状态的实际更改有助于确保事情不会出错。通过更改传递新对象,还可以让React进行(浅)检查以查看状态的哪些部分已更新,以及依赖该状态的哪些组件应重新呈现。