带有按钮和增加量的SwiftUI更新模型
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了带有按钮和增加量的SwiftUI更新模型相关的知识,希望对你有一定的参考价值。
我想增加其点击计数的乘积。因此,如果用户按下按钮,则需要更新模型,数量+ = 1我尝试以下代码,但该模型不会更新金额。
struct GridCell: View
@EnvironmentObject var order: Order
class ViewModel: ObservableObject
let objectWillChange = PassthroughSubject<Void, Never>()
var product : Product
willSet
self.objectWillChange.send()
init(product: Product)
self.product = product
public func increaseCharacterStrength()
var viewproduct = self.product
viewproduct.amount += 1
self.objectWillChange.send()
func updatePos()
self.viewModel.increaseCharacterStrength()
let itempreis = self.viewModel.product.preis
order.totalAmount += itempreis
print(order.totalAmount)
print("---- \(self.viewModel.product.amount) / \(self.viewModel.product.id)")
@ObservedObject var viewModel: ViewModel
var body: some View
Button(action:
print("TAPPED")
self.updatePos()
)
ZStack(alignment: .topLeading)
...
在我的打印对帐单中,金额没有更新,每按一次该按钮的值就等于1。
我忘了什么?
答案
问题似乎是Product
,是类还是结构?
如果是类,则必须继承ObservableObject
如果它是一个结构,那么它应该可以工作,您可以使用
@Published var product : Product
以上是关于带有按钮和增加量的SwiftUI更新模型的主要内容,如果未能解决你的问题,请参考以下文章
SwiftUI + Combine:如何将数据分配给带有动画的模型