如何将视图输入参数传递给 @State 变量?
Posted
技术标签:
【中文标题】如何将视图输入参数传递给 @State 变量?【英文标题】:How Do You Pass A View Input Argument To @State Variable? 【发布时间】:2020-12-17 21:52:31 【问题描述】:我有一个基本的 SwiftUI 问题 - 我有一个需要参数的视图,在我的例子中是“symbolName”,我想获取价格。我有一个执行此操作的类函数,但将视图参数作为参数传递给 FetchPrice 不起作用。当我使用固定字符串(例如“GE”)时,它可以工作。我确信有正确的方法可以做到这一点,感谢任何提示和提示!
错误:
不能在属性初始化器中使用实例成员“symbolNameV”; 属性初始化器在“self”可用之前运行
import SwiftUI
struct SymbolRow2: View
var symbolNameV: String
@ObservedObject var fetchPrice = FetchPrice(symbolName:symbolNameV)
...
【问题讨论】:
【参考方案1】:属性初始化程序在 'self' 可用之前运行
通过调用
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)
...
【讨论】:
以上是关于如何将视图输入参数传递给 @State 变量?的主要内容,如果未能解决你的问题,请参考以下文章
如何将参数传递给配置单元视图,以便视图根据传递的内容进行更改?