如何解决将参数值传递给 Observable 对象
我有一个 ObservableObject 类,用于从 api 获取数据。它需要一个参数,即 api 密钥。我正在尝试将该键从我的 ContentView 的参数传递给对象。
class UnsplashAPI: ObservableObject {
//some code
var clientId: String
init(clientId: String) {
self.clientId = clientId
}
//some more code
}
当我在结构中要求参数时,这很好用
struct ContentView: View {
@Observedobject var api = UnsplashAPI(clientId: "APIKEY")
var body: some View {
//View
}
}
然而这不是:
struct ContentView: View {
var clientId: String
@Observedobject var api = UnsplashAPI(clientId: self.clientId) // Cannot find 'self' in scope
init(clientId: String){
self.clientId = clientId
}
var body: some View {
//View
}
}
我认为我初始化结构错误,因为我收到错误“无法在范围内找到‘自我’”
解决方法
在 init
内初始化它
struct ContentView: View {
var clientId: String
@ObservedObject var api: UnsplashAPI
init(clientId: String){
self.clientId = clientId
self.api = UnsplashAPI(clientId: clientId) // << here !!
}
// ...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。