在 .onAppear{} swiftui

问题描述 投票:0回答:1

我的 swiftui View 上的 onAppear 里面有一个条件

我想执行 if 条件 after 我的 firstCall() 结束

我的出现:

 .onAppear{
        
        firstCall()
        
        
        if mybool{ // I want this to be executed just after the firstCall() is completed
            value = repo.secondCall(int: self.initialValue)
        }
        
    }

我要在if条件执行之前结束的firstCall方法

func firstCall(){
        
         Task{
            do{
                try await repo.firstCall().watch(block: {myView in
                    
                    self.initialValue = myView
                    
                    
                })
            }catch{
                print("error")
            }
        }
    }

我需要这个,因为在执行 if 语句之前我需要为我的 self.initialValue 赋值。

另外,第二次调用很少执行,所以在 swiftui 上执行此操作的最佳性能方式是什么,我是 swift 的新手。

swift swiftui swift3 realm
1个回答
0
投票

将第一次调用更改为适当的异步等待格式

func firstCall() async {
        do{
            try await repo.firstCall().watch(block: {myView in
                
                self.initialValue = myView
                
                
            })
        }catch{
            print(error)
        }
    
}

然后使用

.task

.task{
    
    firstCall()
    
    if mybool{ // I want this to be executed just after the firstCall() is completed
        value = repo.secondCall(int: self.initialValue)
    }
    
}
© www.soinside.com 2019 - 2024. All rights reserved.