ไม่สามารถแปลงค่าประเภท 'Binding <Int> เป็นประเภทอาร์กิวเมนต์ที่คาดไว้' Binding <_> '


10

ฉันกำลังพยายามสร้างTabViewใน SwiftUI ด้วยรหัสต่อไปนี้:

@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)
    }
}

Cannot convert value of type 'Binding<Int>' to expected argument type 'Binding<_>'แต่ฉันได้รับข้อผิดพลาด ฉันเห็นว่าตัวแปรselectionเป็นจำนวนเต็มซึ่งเป็นชนิดที่ถูกต้อง แต่คำเตือนยังคงอยู่ที่นั่นด้วยเหตุผลบางอย่าง

คำตอบ:


9

ฉันพบปัญหา สิ่งที่TabViewแสดงให้เห็นถึงข้อผิดพลาดนี้แม้ว่าจะมีข้อผิดพลาดบางอย่างในการปิด ดังนั้นการสร้างรหัสที่TabViewถูกต้อง แต่ปัญหาคือวิธีการที่ฉัน DataGridPageinitialising ฉันเปลี่ยนชื่อของคุณสมบัติtypeเป็นdataข้างในDataGridPageแต่ที่นี่ฉันยังคงใช้typeคุณสมบัติอยู่ ฉันแก้ไขมันและหยุดแสดงคำเตือนให้ฉัน

ฉันคิดว่า SwiftUI เป็นกรอบงานใหม่และยังมีการปรับปรุงมากมายที่ต้องทำในแง่ของการดีบัก ฉันหวังว่ามันจะเติบโตในอนาคตและเราจะสามารถระบุข้อผิดพลาดที่แน่นอนแทนข้อความที่คลุมเครือนี้

รหัสใหม่ตอนนี้มีลักษณะดังนี้:

@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)
    }
}

หวังว่าจะช่วยให้ใครบางคนประสบปัญหาที่คล้ายกัน


1
มีปัญหาเดียวกันและสามารถแก้ไขได้ในตอนนี้ ขอบคุณ
gurehbgui

ปัญหาของฉันดูเหมือนกัน แต่ฉันจำไม่ได้ว่าจะสร้างมุมมองของฉัน (วงเล็บ) ดังนั้นมันก็เหมือนกับที่ฉันทำ DataGridPage.tabItem {... แทนที่จะเป็น DataGridPage () tabItem {... ในกรณีของฉันมุมมองไม่ได้ใช้พารามิเตอร์ใด ๆ ในตัวสร้าง
dwaz
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.