
概述
在SwiftUI中状态驱动一切。
视图属性作为状态的承载,它的改变会导致界面的刷新,但不知大家是否遇到过@State修饰的属性无法被赋值的奇怪现象。
这里所谓的“无法被赋值”意思是:赋值操作语句执行后,属性值并没有发生任何改变。
这是怎么回事呢?
让我们用一个简单的小栗子来了解一下吧!😉
Let’s Go!
奇怪的现象
当这种问题发生时,@State修饰的属性类型恰好遵守Equatable协议,而且我们自己实现了对应的==方法。
实际代码很简单,我们来看一下:
struct Product: Equatable {
static func ==