i'm trying to use setState to update one property of a sub object of the state. What is the correct way to do this? I want to access the state and define which part I want to update, as opposed to update the entire state with a new state. Hope that makes sense...
class BooksApp extends React.Component {
  state = {
    books: []
  }
componentDidMount() {
  BooksAPI.getAll().then((books) => {
    this.setState({books})
  })
}
selectStateUpdate = (book,shelf) => {
  this.updateShelf(book, shelf);
}
updateShelf = (book, shelf) => {
  BooksAPI.update(book, shelf)
  .then(() => {
    for (var i=0; this.state.length < i; i++) {
      if (this.state.title === book.title) {
        this.setState({
          books[i].shelf: book.shelf
        })
      }
    }
  })
}
 
    