这段代码的执行让我很困惑:
class RecipelistViewModel: ObservableObject {
@Published var recipelist = [RecipeViewModel]()
init(){
RecipeRepository.$allRecipeVMs.map { recipes in
recipes.map { recipe in
recipe
}
}
.assign(to: &$recipelist)
}
}
我的理解是 SwiftUI 发布者是单向的,这意味着当 RecipeRepository.allRecipeVMs
被修改时,recipelist
也是如此。但是,我看到的行为是当 recipelist
更新时,RecipeRepository.allRecipeVMs
也会更新。我试图找到有关此的文档,但似乎找不到任何内容。
这是 RecipeViewModel
类,不确定它是否有用:
class RecipeViewModel : Identifiable,ObservableObject,Hashable{
var id = UUID().uuidString
@Published var recipe: Recipe
init(recipe: Recipe){
self.recipe = recipe
}
}