Không thể chuyển đổi giá trị của loại 'Binding <Int>' thành loại đối số dự kiến ​​'Binding <_>'


10

Tôi đang cố gắng tạo một TabViewSwiftUI với mã sau:

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

Nhưng tôi đang nhận được lỗi Cannot convert value of type 'Binding<Int>' to expected argument type 'Binding<_>'. Tôi thấy rằng biến selectionlà số nguyên, là loại chính xác nhưng cảnh báo vẫn còn đó vì một số lý do.

Câu trả lời:


9

Tôi đã tìm ra vấn đề. Điều này TabViewcho thấy lỗi này ngay cả khi có một số lỗi trong việc đóng cửa. Vì vậy, mã tạo ra TabViewlà chính xác nhưng vấn đề là cách tôi khởi tạo DataGridPage. Tôi đã thay đổi tên của tài sản typevào databên trong DataGridPagenhưng ở đây tôi vẫn đang sử dụng typetài sản. Tôi đã sửa nó và nó dừng hiển thị cho tôi cảnh báo.

Tôi nghĩ SwiftUI là một khung công tác mới và nó vẫn còn nhiều cải tiến để làm về mặt gỡ lỗi. Tôi hy vọng nó sẽ trưởng thành trong tương lai và chúng tôi sẽ có thể xác định chính xác lỗi thay vì tuyên bố mơ hồ này.

Mã mới bây giờ trông như thế này:

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

Hy vọng nó sẽ giúp ai đó đối mặt với vấn đề tương tự.


1
Có cùng một vấn đề và có thể giải quyết nó bây giờ. Cảm ơn
gurehbgui

Vấn đề của tôi có vẻ tương tự, nhưng tôi không nhớ xây dựng quan điểm của mình (dấu ngoặc đơn). Vì vậy, nó giống như tôi đã làm DataGridPage.tabItem {... thay vì DataGridPage (). TabItem {... Trong trường hợp của tôi, khung nhìn không lấy bất kỳ tham số nào trong hàm tạo.
dwaz
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.