我有一个这样的按钮
Button(action: {
// do something
}, label: {
Text("The price is \(price)")
})
第一个问题是按钮的标签部分需要一个视图.
此外,价格是使用类似于
func priceFor(_ productID: String,
onConclusion:GetPriceHanler?) {
inapp?.fetchProduct(productIdentifiers: [productID],
handler: { (result) in
switch result {
case .success(let products):
let products = products
guard let product = products.first
else {
onConclusion?("")
return
}
onConclusion?("\(product.price)")
case .failure(let error):
print(error.localizedDescription)
onConclusion?("")
}
})
}
因此,此函数在完成后运行一个闭包.
我曾考虑创建另一个函数,该函数返回一个视图来调用此函数……像这样的东西
@ViewBuilder
func priceViewFor(_ productID: String) -> some View { }
如果函数返回价格,则没有问题,如果无效,则返回空,但如果这样做,我将在闭包中结束,并且无法从那里返回视图.
像这样的东西
@ViewBuilder
func priceViewFor(_ productID: String) -> some View {
myAppStore.priceFor(productID) { price in
return Text(price) ?????????????
}
以比特的名义,我怎么做到这一点呢?