我的观点很简单:
import SwiftUI
struct CategoryElementView: View {
@Binding var selectedCategory: String?
private let category: String
private let isSelectable: Bool
private var isSelected: Bool {
!isSelectable || category == selectedCategory
}
init(category: String, selectedCategory: Binding<String?>) {
self.category = category
self.isSelectable = true
self._selectedCategory = selectedCategory
}
init(category: String) {
self.category = category
self.isSelectable = false
self._selectedCategory = category
// ❌ Cannot assign value of type 'String' to type 'Binding<String?>'
}
}
我的目的是什么?我需要使用相同的视图用于2种模式:选择它(selectable == true
),只显示它(selectable == false
)。如果没有选择,就不需要从外部绑定了。怎么做呢?Nil也会在这里产生错误。
1条答案
按热度按时间gr8qqesn1#
这是构建预览时的一种常见情况,您希望注入常量值而不是绑定。您应该能够使用相同的方法:
它也应该与
nil
一起工作。在你的例子中,你甚至可以使用一个构造函数: