So, I want to read two text field values and use a button to reset my state. Here's my code:
this.state = {
items: [{
name: 'Cola',
price: 1.20
}, {
name: 'Stuff',
price: 0.50
}, {
name: 'Beer',
price: 0
}
]
};
handle = (name, price) => {
this.addProductToBasket(name, price);
}
addProductToBasket = (name, price) => {
var newArray = this.state.items.slice();
var itemToBeAdded = {
name : name,
price : price
};
newArray.push(itemToBeAdded);
console.log(newArray)
this.setState( {items:newArray} )
}
<form onSubmit={ () => this.handle(this.state.items.name, this.state.items.price)}>
<input type="text" name='name' value={this.state.items.name}/>
<input type="text" name='price' value={this.state.items.price}/>
<button type="submit" value="Submit">BUTTON</button>
</form>
I tested
addProductToBasket
and it works! I debugged the code in Chrome and I just get undefined for name and price.
this.state.nameandthis.state.price?this.state.items.pricedoesn't make sense.