【发布时间】:2021-02-08 10:17:30
【问题描述】:
我有这个设置: 父视图:PostsListView 子视图:PostEditView
- PostsListView 显示帖子的列表简短描述
- 点击任何帖子时,我会显示子视图:PostEditView
- 目标是在此处调用 API,当用户返回 PostsListView 时,它应该显示更新的描述
我正在使用 MVVM,所以在 PostsListView 中
@ObservedObject var viewModel : PostsListViewModel
LazyVGrid(columns: columns) {
ForEach(viewModel.posts, id: \.self) { post in
NavigationLink(
destination: PostEditView(viewModel: PostEditViewModel(post: post))){
Text(post: post)
.lineLimit(3)
}
}
}
我将视图模型(PostEditViewModel(post:)) 从父视图传递给 childView。
我不确定如何在两个视图的 viewModel 之间绑定这个“post”对象。
仅供参考的视图模型:
PostsListViewModel:
class PostsListViewModel: ObservableObject{
@Published var posts: [Post]
//api operations....
}
PostEditViewModel:
class PostEditViewModel: ObservableObject{
@Published var post: Post
//custom Post mutation and api operations....
}
【问题讨论】: