タイプ '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は正しいですが、問題は私が初期化している方法ですDataGridPage。プロパティの名前typedata内部に変更しました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.