SwiftUI使用.if修饰符报some View无if成员错误原因咨询
根本原因
SwiftUI 官方并没有自带名为if的视图修饰符,你在另一项目中可以正常使用该语法,是因为那个项目里要么自己实现了对应的View扩展,要么引入了包含该扩展的第三方依赖(比如常见的SwiftUIX库就内置了这个扩展)。而当前报错的项目中没有对应的扩展实现,所以编译器识别不到if成员,抛出错误。
常用的if扩展实现参考
你可以将以下代码添加到当前项目的任意全局文件中,即可正常使用该语法:
extension View { @ViewBuilder func `if`<Content: View>(_ condition: Bool, transform: (Self) -> Content) -> some View { if condition { transform(self) } else { self } } }
验证方法
你可以回到之前能正常运行的项目,全局搜索func if``关键字,就能找到对应的扩展实现来源。
内容的提问来源于stack exchange,提问作者Michel
相关产品推荐
相关产品推荐

