'Bağlama <Int>' türünün değeri beklenen 'Bağlama <_>' bağımsız değişken türüne dönüştürülemiyor


10

TabViewAşağıdaki kod ile SwiftUI bir oluşturmaya çalışıyorum :

@State var selection = 0

var body: some View {
    TabView(selection: $selection) {
        DataGridPage(type: "media").tabItem {
            Image(systemName: "photo.on.rectangle")
                .imageScale(.large)
                .foregroundColor(.yellow)
        }
        .tag(1)

        DataGridPage(type: "files").tabItem {
            Image(systemName: "doc.on.doc")
                .imageScale(.large)
                .foregroundColor(.yellow)
        }
        .tag(2)
    }
}

Ama hata alıyorum Cannot convert value of type 'Binding<Int>' to expected argument type 'Binding<_>'. Değişkenin selectiondoğru tip olan tamsayı olduğunu görüyorum, ancak uyarı hala bir nedenden dolayı var.

Yanıtlar:


9

Sorunu çözdüm. Mesele şu ki TabView, kapanmada bir hata olsa bile bu hatayı gösterir. Yani oluşturma kodu TabViewdoğrudur ama sorun ben başlatıyorum yoludur DataGridPage. Ben özelliğin adını değiştirdi typeiçin dataDataGridPageama burada hala kullanıyorum typeözelliği. Düzelttim ve bana uyarıyı göstermeyi bıraktı.

Bence SwiftUI yeni bir çerçeve ve hata ayıklama açısından yapacak çok gelişme var. Umarım gelecekte olgunlaşır ve bu belirsiz ifade yerine kesin hatayı işaretleyebiliriz.

Yeni kod şimdi şöyle görünüyor:

@State var selection = 0

var body: some View {
    TabView(selection: $selection) {
        DataGridPage(data: "media").tabItem {
            Image(systemName: "photo.on.rectangle")
                .imageScale(.large)
                .foregroundColor(.yellow)
        }
        .tag(1)

        DataGridPage(data: "files").tabItem {
            Image(systemName: "doc.on.doc")
                .imageScale(.large)
                .foregroundColor(.yellow)
        }
        .tag(2)
    }
}

Umarım benzer bir sorunla karşılaşan birine yardımcı olur.


1
Aynı sorunu vardı ve şimdi çözebilir. Thanks
gurehbgui

Sorunum benzer görünüyordu, ama görüşümü (parantez) oluşturmayı hatırlamıyordum. Yani DataGridPage () yerine DataGridPage.tabItem {... gibi oldu. TabItem {... Benim durumumda, görünüm yapıcıda herhangi bir parametre almadı.
dwaz
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.