我在ViewModel文件中有一个函数,它将数据添加到数组中,我可以在我的viewModel文件中打印出这个数组,然后看到所有的数据,但是在我的视图文件中,当我调用这个数组,比如viewModel.array,它看起来里面没有数据,我该如何修改我的代码,以便我可以在视图中访问这个数组?还有fetchConvos正在init中调用()函数,因此用户数组应得到更新。
视图模型文件
class MessageViewModel: ObservableObject{
@Published var users = [User]()
func fetchConvos(){
service.getConversations() { users in
self.users = users
}
}
视图
@ObservedObject var viewModel = MessageViewModel()
var body: some View {
if let index = viewModel.users.firstIndex(of: user) {
....
这里的索引从未被赋值,因为用户数组为空。
1条答案
按热度按时间ruyhziif1#
您必须订阅@Published属性 Package ,因此使用
.onReceive(
。为了让事情更清楚,这里有一个带注解的小例子: