@700Hp

Постоянно приходит разный ответ с ответ с google book. Как решить проблему с подгрузкой?

Запрос:
import {$host} from './index'

export const getBooks = async (input) => {
    const response = await $host.get(`volumes?q=${input}&maxResults=30`)
    return response.data
}

export const getMoreBooks = async (input, start) => {
    const response = await $host.get(`volumes?q=${input}&startIndex=${start}&maxResults=30`)
    return response.data
}


Корень axios
import axios from 'axios'

const $host = axios.create({
    baseURL: process.env.REACT_APP_API_URL
})

export {
    $host
}


process.env.REACT_APP_API_URL == localhost:3000

Mobx
import {makeAutoObservable} from "mobx"

export default class BookStore {
    constructor() {
        this._books = []
        makeAutoObservable(this)
    }

    setIsBooks(books) {
        this._books = books
    }

    setMoreBooks(books) {
        this._books = this._books.concat(books)
    }

    get isBooks() {
        return this._books
    }
}


Запрос на получение книг:
const handleSubmit = async () => {
        setLoader(true)
        await getBooks(value).then(data => {
            if (data.totalItems > 0) {
                books.setIsBooks(data.items)
                setAllItems(data.totalItems)
                setCards(books._books)
                setStartIndex(29)
            } else {
                console.log('Ничего не найдено')
                setAllItems('Ничего не найдено')
            }
            setLoader(false)
        })
    }


По кнопке посмотреть ещё подгружаем остальное:
const test = async () => {
        setLoader(true)

        await getMoreBooks(value, startIndex).then(data => {
            books.setMoreBooks(data.items)
            setCards(books._books)
            setStartIndex(startIndex + 29)

        })
        setLoader(false)
    }


Проблема в следующем. Первичный запрос показывает 183 элемента найдено. Подгруажет 30.
По нажатию посмотреть ещё, подгружает вторые 30 и так 3 раза. Проблема в том, что на 3 раз, в консоли он показывает, что теперь по тому же запроса найдено не 183 элемента, а 170. И так на спад.

Ошибка в моём запросе и стоит релазиовать пагинацию иначе. Или проблема api google?

617432e00efa1417876415.png617432e61f55d832129090.png
  • Вопрос задан
  • 70 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы