Не передавайте books
в качестве аргумента в useEffect
обратном вызове. Вам нужно справочники из-за пределов видимости
useEffect(() => {
setBookList(books);
}, []);
В этом случае он будет ссылаться на books
в теле компонента.
useEffect(() => {
fetch('some_url).then(res => res.json()).then(books => setBookList(books));
}, []);