反应如何将新元素添加到状态?
问题描述:
我想将新元素添加到我的产品状态,目前使用.concat
,但它添加到数组的末尾,但我需要添加到开头。反应如何将新元素添加到状态?
var Body = React.createClass({
getInitialState() {
return { products: [] }
},
handleSubmit(product) {
var newState = this.state.products.concat(product);
this.setState({ products: newState });
},
});
试过用this.state.products.unshift(product)
但它给我Uncaught TypeError: this.state.tickets.unshift is not a function
这可能是它返回一个数组的长度不是本身。
答
只要改变连接顺序即可。如果“产品”是一个单一的项目,而不是一个数组,那么这样做:
var newState = [product].concat(this.state.products);
如果“产品”已经是一个数组,只是这样的:
var newState = product.concat(this.state.products);