🧐

SwiftUI のAnyView (VStack) でtype of expression is ambiguous ~ エラー

2021/04/16に公開

SwiftUI でビルドは成功するのに、Canvas のプレビューがエラーで表示されなくなったのでメモ。

エラーの内容

Canvas Preview の右上に出現するDiagnostics をクリックして詳細を確認します。

VStack を配置している箇所で type of expression is ambiguous without more context というエラーが出ていました。

エラーの原因

どうやら今回は、SwiftUI で定義されているView と同じ名前のView を定義してそれを使おうとしたことが原因のようでした。

struct Divider: View {
    var body: some View {
        //
    }
}

ここではDivider という名前がよくなかったようで、別の名前に変更するとプレビューが正しく表示されるようになりました。

struct CustomDivider: View {
    var body: some View {
        //
    }
}

所感

特にSwiftUI では名前の衝突に気をつける必要があるかも...

参考

Divider | Apple Developer Documentation

Discussion