2016-11-25 58 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);