Компонент уже корректно отображает входной value. Чтобы он обновлялся, родитель должен хранить число в наблюдаемом состоянии и передавать новое значение.
Отображение текущего числа в SwiftUI‑вью
Компонент уже корректно отображает входной value. Чтобы он обновлялся, родитель должен хранить число в наблюдаемом состоянии и передавать новое значение.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Реализуйте SwiftUI‑компонент, который принимает состояние успеха и выводит полученное целое число. При изменении этого числа представление должно автоматически обновляться.
struct SuccessView: View {
var value: Int
var body: some View {
Text("Number is: \(value)")
}
}
Ответ
Компонент уже корректно отображает входной value. Чтобы он обновлялся, родитель должен хранить число в наблюдаемом состоянии и передавать новое значение.
Пример владельца состояния:
struct ParentView: View {
@State private var number = 1
var body: some View {
VStack {
SuccessView(value: number)
Button("Следующее") { number += 1 }
}
}
}
При изменении number SwiftUI пересчитывает зависимый UI, и Text получает новое значение. Самому SuccessView не нужен State, если он только читает вход. Если дочерний компонент должен менять число родителя, его контракт заменяют на Binding и передают $number.