Может ли родительский wiftui viewmodel составить ссылку на ребенка @stateobject viewmodel?IOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Может ли родительский wiftui viewmodel составить ссылку на ребенка @stateobject viewmodel?

Сообщение Anonymous »

В приложении Swiftui у меня есть родительская точка зрения, которая принимает ParentViewModel в качестве аргумента init, и в этом представлении также отображается представление о доме, которая владеет собственной собственной детской, отмеченной как @stateobject. ViewModel, даже если он уже принадлежит дочернему представлению через @StateObject?final class ChildViewModel: ObservableObject {
func doSomething() {
print("Child did something")
}
}

final class ParentViewModel: ObservableObject {
let childVM: ChildViewModel

init() {
self.childVM = ChildViewModel()
}

func triggerChild() {
childVM.doSomething()
}
}

struct ChildView: View {
@StateObject var viewModel: ChildViewModel

init(viewModel: ChildViewModel) {
_viewModel = StateObject(wrappedValue: viewModel)
}

var body: some View {
Text("Child View")
}
}

struct ParentView: View {
@StateObject var viewModel: ParentViewModel

init(viewModel: ParentViewModel) {
_viewModel = StateObject(wrappedValue: viewModel)
}

var body: some View {
VStack {
Button("Trigger child") {
viewModel.triggerChild()
}
ChildView(viewModel: viewModel.childVM)
}
}
}

// Usage example
struct ContentView2: View {
var body: some View {
ParentView(viewModel: ParentViewModel())
}
}
< /code>
Вопросы: < /p>

Допустимо ли передавать экземпляры, принадлежащие @ @StateObject, другие такие объекты, как это? Действительна ли эта шаблон в Swiftui или может привести к неожиданному поведению?>

Подробнее здесь: https://stackoverflow.com/questions/796 ... t-viewmode
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «IOS»