如何将视图输入参数传递给@State 变量?

How Do You Pass A View Input Argument To @State Variable?

我有一个基本的 SwiftUI 问题 - 我有一个接受参数的视图,在我的例子中是“symbolName”,我想获取它的价格。我有一个执行此操作的 class 函数,但是 将视图参数作为参数传递给 FetchPrice 不起作用 。当我使用固定字符串(例如“GE”)时,它会起作用。我确信有一个正确的方法可以做到这一点,感谢您的任何提示和技巧!

错误:

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

import SwiftUI

struct SymbolRow2: View {
    var symbolNameV: String

    @ObservedObject var fetchPrice = FetchPrice(symbolName:symbolNameV)

...

property initializers run before 'self' is available

通过调用

FetchPrice(symbolName: symbolNameV)

您正在访问 self。上面的代码其实是:

FetchPrice(symbolName: self.symbolNameV)

要解决这个问题,您可以创建自定义 init:

struct SymbolRow2: View {
    private var symbolNameV: String
    @ObservedObject private var fetchPrice: FetchPrice
    
    init(symbolNameV: String) {
        self.symbolNameV = symbolNameV
        self.fetchPrice = FetchPrice(symbolName: symbolNameV)
    }

    ...
}