C3cbb171bf4a51d55f28139375f85875
SwiftUI iOS15 WWDC21 新修饰符之task(_: ) 实现异步请求json

实战需求

SwiftUI iOS15 WWDC21 新修饰符之task(_: )

本文价值与收获

看完本文后,您将能够作出下面的界面

截屏2021-06-27 下午4.46.50.png

截屏2021-06-27 下午4.46.50.png


基础知识

task(_: )是什么

添加要在此视图出现时执行的任务。任务修饰符的主要目的是await获得async操作的结果。在任务修饰符中,您可以调用 API 并填充您的视图。

宣言

func task(_ action: @escaping () async -> Void) -> some View

返回值

创建要运行的任务的视图action。

参数

action
要执行的操作。

讨论

当此视图消失时,任务将被取消。

下面的示例显示了处理文本时显示它的视图是可见的。

Text(displayValue)
    .task {
        var results = TextProcessResults()
        for try await line in textURL.lines() {
            results.accumulateResults(line: line)
        }
        displayValue = results.textSummary()
    }

实战代码

```
import SwiftUI

struct TodoItem:Decodable, Identifiable {
var userId = 0
var id = 0
var title = ""
var completed = false
}

top Created with Sketch.