SwiftUI - @AppStorage 变量键值

SwiftUI - @AppStorage variable key value

我正在尝试从 UserDefaults 获取一个 Bool,其键取决于产品的 nameID。

我这样试过:

import SwiftUI

struct ProductDetail: View {
    
    var product: GumroadProduct
    
    @AppStorage("LOCAL_LIBRARY_PRESENCE_PRODUCTID_\(product.id)") var isLocal: Bool = false
    
    var body: some View {
       Text("ProductView") 
    }
}

无论如何 Swift 抛出此错误:

Cannot use instance member 'product' within property initializer; property initializers run before 'self' is available

我明白为什么 Swift 会抛出该错误,但我不知道如何解决它。 有解决办法吗?

非常感谢您, 阿尔贝托

这是您的代码快照的解决方案 - 根据输入在其中提供显式初始化程序和实例化属性:

struct ProductDetail: View {

    @AppStorage private var isLocal: Bool
    private var product: GumroadProduct

    init(product: GumroadProduct) {
        self.product = product
        self._isLocal = AppStorage(wrappedValue: false, "LOCAL_LIBRARY_PRESENCE_PRODUCTID_\(product.id)")
    }

    var body: some View {
        Text("ProductView")
    }
}