Swift 5 - 传递给不带参数的调用的参数

标签 swift swiftui

我正在尝试将数据传递到我的应用程序中的新 View ,以便我的脚本可以将数据插入链接并获取相应的文章信息。我的 View 是用 ArticleView(articleID: 0) 调用的,尽管这会随着文章的 ID 而改变。我的观点的开始是这样开始的……

struct ArticleView: View {
   var articleID: Int
   @Envionment(.\imageCache) var cache: ImageCache
   @ObservedObject private var data = Result2()
   let defaults = UserDefaults.standard

   ...

   init() {
      self.data.results.append(Story.init(id: 0, title: "test", image: "", story: "", published: "", author: ""))
      self.loadArticle(CDNLink: "http://\(self.defaults.object(forKey: "domain") as! String)/cdn?funct=fetchArticle&articleID=\(self.articleID)")
   }

我想了解的是如何从仪表板获取文章 ID 并将其存储在 var articleID 中,以便我的 loadArticle 函数可以运行脚本并提取内容?我可以根据要求提供 Result2() 的信息以及 Response2 和 Story 的数据结构。谢谢!

最佳答案

你有两个选择:

  1. 向初始化程序请求参数:
struct ArticleView: View {
    var articleID: Int
    ...

    init(articleID: Int) {
        self.articleID = articleID

        // Do whatever you need
    }

    var body: some View {
        SomeView()
    }
}
  1. 省略初始化器并将所有你需要的放在.onAppear 子句中
struct ArticleView: View {
    var articleID: Int
    ...

    var body: some View {
        SomeView()
            .onApppear {
                // Do whatever you need
            }
    }
}

在第二种情况下,编译器将自动创建一个初始化程序,其中包含所有需要的值(在您的情况下 - articleID)

关于Swift 5 - 传递给不带参数的调用的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63961637/

相关文章:

SwiftUI ForEach 类型 '_' 没有成员 'id'

ios - 我如何调用其他类的函数? swift ,Xcode

ios - Swift 框架不在 -swift 文件中生成 objective-c 头代码

ios - 为什么 MPMoviePlayerController 全屏按钮图标在 iOS 10 中变为字幕图标?

swift - 如何使用 Combine 跟踪 UIViewRepresentable 类中的 UITextField 更改?

SwiftUI 嵌套列表没有出现

ios - SwiftUI 将 Swift 代码作为可重用 View 的参数传递

list - 使可扩展列表的背景透明似乎是不可能的。在 StackOverflow 上测试了所有解决方案

background - SwiftUI - 上下文菜单背景颜色

swift - 如何让本地通知只触发一次?