У меня возникла проблема при использовании свойства @State.
Мой ContentView.swift выглядит так:
import SwiftUI
struct ContentView: View {
@State var showText: Bool = true
var Mod: Modifier
init() {
Mod = Modifier(showText: $showText) // Throws error -> 'self' used before all stored properties are initialized ('self.Mod' not initialized)
}
var body: some View {
VStack {
if showText == true {
Text("Hello, World!")
}
Mod
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
И мой Modifier.swift, из которого вызывается вид Modifier имеет следующий код:
import SwiftUI
struct Modifier: View {
@Binding var showText: Bool
var body: some View {
VStack {
Button("Hide Text") {
self.showText.toggle()
}
}
}
}
Я создал этот упрощенный код из моего фактического проекта, что упрощает понимание моей проблемы.
Проблема
проблема в том, что код в функции инициализации приводит к ошибке, и я не знаю, как ее исправить.
Что я пробовал и что мне понадобится
Поскольку это просто упрощенная версия моего фактического кода, мне нужны некоторые требования к моему коду:
- Mod не может быть вычисляемой переменной
- Мне почему-то нужен
Modifier
просматривать как переменную с именем Mod
в моем ContentView - Когда я удаляю свойство
@State
, свойство @Binding
и $
, код работает и приводит к 0 ошибкам. Но мне нужно использовать свойство @State
(что, к сожалению, приводит к ошибкам в моем коде) - Также должна работать кнопка для скрытия и отображения текста
Я был бы очень благодарен, если кто-нибудь может дать мне подсказку. Я очень ценю вашу помощь!