Мне удалось выяснить, где была моя ошибка.
В компоненте BookListItem:
import React from 'react';
import { Link } from 'react-router-dom';
const BookListItem = ({ author, title, genre, text, id, pages }) => (
<div>
<Link to={`/edit/${id}`}><h2>{title}</h2></Link>
<h3>by: {author}</h3>
<p>{genre}</p>
{pages > 0 && <p>{pages} pages</p>}
<p>{text}</p>
<p>-------------------------------</p>
</div>
);
export default BookListItem;
До $ {id}, к сожалению, у меня было двоеточие {/edit/:${id}
}, поэтому book.id и props.match.params.id не могли совпадать