Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

كائنات البيئة

جزء من قسم مقدمة إلى SwiftUI في رحلة Swift على Coddy. الدرس 41 من 50.

يصبح تمرير كائن عبر كل عرض وصولًا إلى العرض الذي يحتاج إليه أمرًا مملًا. ضعه في البيئة بدلًا من ذلك، ويمكن لأي عرض أدناه قراءته:

@StateObject private var cart = Cart()

var body: some View {
    NavigationStack {
        ShopView()
    }
    .environmentObject(cart)
}

يُصرّح أحد العروض الموجودة في موضع أدنى عمّا يحتاج إليه باستخدام @EnvironmentObject، من دون قيمة أولية:

struct CartBadge: View {
    @EnvironmentObject var cart: Cart

    var body: some View {
        Text("\(cart.count) in cart")
    }
}

لا تشير ShopView مطلقًا إلى السلة، لكن CartBadge الموجودة داخلها تحصل مع ذلك على الكائن نفسه. إذا لم يوفّر أي عرض أعلى منها هذا الكائن باستخدام .environmentObject، يتوقف التطبيق مع ظهور خطأ عند عرض CartBadge.

challenge icon

التحدي

متوسط

يجب أن يعرض CartBadge عدد عناصر السلة المشتركة. مرّر cart إلى VStack باستخدام .environmentObject، وغيّر CartBadge لقراءته باستخدام @EnvironmentObject. يجب أن يعرض الشريط النص 1 in cart بعد نقرة واحدة.

جرّب بنفسك

import SwiftUI

@main
struct CoddyApp: App {
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس مقدمة إلى SwiftUI

تدرّب بنفسك: Playground لـ Swift