دعم الموقع

Hi, I'm trying to load the second page on my app, but for some reason it keeps showing results from page 1. When I press the button 'load more' it should grab the second page movies, but it doesn't. Any idea's? It's in swiftUI btw.

Button code:

Button(action: {
                    movieListState.fetchNextPage(from: endpoint)
                }) {
                    Text("Load More")
                        .font(.headline)
                        .foregroundColor(.blue)
                        .padding()
                        .background(Color.gray.opacity(0.1))
                        .cornerRadius(10)
                }

Handeling code:

class MovieListState: ObservableObject {
    @Published var movies: [Movie] = []
    @Published var isLoading: Bool = false
    @Published var error: MovieError?

    private let movieService: MovieService
    private var currentPage: Int = 1

    init(movieService: MovieService = MovieStore.shared) {
        self.movieService = movieService
    }

    func loadMovies(from endpoint: MovieListEndpoint, page: Int) {
        self.isLoading = true
        self.movieService.fetchMovies(from: endpoint, page: page) { [weak self] (result) in
            guard let self = self else { return }
            self.isLoading = false
            switch result {
            case .success(let response):
                self.movies = response.results

            case .failure(let error):
                self.error = error
            }
        }
    }

    func fetchNextPage(from endpoint: MovieListEndpoint) {
        guard !isLoading else { return }
        let nextPage = currentPage + 1
        loadMovies(from: endpoint, page: nextPage)
        currentPage = nextPage
    }
}

Api call:

    func fetchMovies(from endpoint: MovieListEndpoint, page: Int, completion: @escaping (Result<MovieResponse, MovieError>) -> ()) {
        guard let url = URL(string: "\(baseAPIURL)/movie/\(endpoint.rawValue)?api_key=\(apiKey)&page=\(page)&include_adult=false&watch_region=NL") else {
            completion(.failure(.invalidEndpoint))
            return
        }
        self.loadURLAndDecode(url: url, completion: completion)
        print(url)
    }

لم تجد الفلم أو المسلسل ؟ سجل دخولك و انشئها

عام

s ركز شريط البحث
p افتح قائمة الملف الشخصي
esc اغلق النافذة المفتوحة
? افتح نافذة اختصارات لوحة المفاتيح

على كافة صفحات الوسائط

b ارجع للخلف (او للصفحة الام عند التطبيق)
e انتقل لصفحة التعديل

على كافة صفحات موسم المسلسل

(السهم الايمن) انتقل للموسم التالي
(السهم الايسر) انتقل للموسم السابق

على كافة صفحات حلقة المسلسل

(السهم الايمن) انتقل للحلقة التالية
(السهم الايسر) انتقل للحلقة السابقة

على كافة صفحات الصور

a افتح صفحة اضافة الصورة

على كافة صفحات التعديل

t افتح محدد الترجمة
ctrl+ s ارسال النموذج

على صفحات المناقشة

n انشى نقاش جديد
w تبديل حالة المتابعة
p تبديل عام / خاص
c تبديل اغلاق / فتح
a افتح الانشطة
r رد على النقاش
l انتقل لأخر رد
ctrl+ enter أرسل رسالتك
(السهم الايمن) الصفحة التالية
(السهم الايسر) الصفحة السابقة

الاعدادات

هل تريد تقييم او اضافة هذا العنصر للقائمة؟

تسجيل الدخول