2016-11-25 57 views
0

我想将新元素添加到我的产品状态,目前使用.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这可能是它返回一个数组的长度不是本身。

回答

0

只要改变连接顺序即可。如果“产品”是一个单一的项目,而不是一个数组,那么这样做:

var newState = [product].concat(this.state.products); 

如果“产品”已经是一个数组,只是这样的:

var newState = product.concat(this.state.products);