React newbie here.
I'm trying to decrement the quantity value upon the button click. When I click the button I see a NaN value displayed next to all the buttons. How could I avoid the NaN error? What mistake am I making here and how would I individually update the values on the buttons? Thank you. Data and code follows. 
{
"id": 1,
"title": "Python Crash Course",
"author": "Eric Matthes",
"quantity": 5
},
{
"id": 2,
"title": "Head-First Python",
"author": "Paul Barry",
"quantity": 2
},
{
"id": 3,
"title": "Invent Your Own Computer Games with Python",
"author": "Al Sweigart",
"quantity": 1
}
Below is my React code.
class BooksComponent extends Component{
constructor(){
super()
this.state ={
booksData: []
}
this.reserve = this.reserve.bind(this)
}
componentDidMount() {
axios.get('/library')
.then(res => {
const booksData = res.data
this.setState({ booksData })
})
}
render() {
return (
<div className="App">
{this.state.booksData.map(book => {
const {id, title, author, quantity} = book
return (
<div>
<p>{id} - {title} - {author}</p>
<button onClick={this.reserve}>Reserve {quantity}</button>
<span>{this.state.quantity}</span>
</div>
);
})
}
</div>
)
}
reserve(){
console.log('Reserved')
this.setState({
quantity: this.state.booksData.quantity-1
}
)
console.log(this.state)
}
}
export default BooksComponent