循环更新视图

问题描述 投票:0回答:1

我试图在遍历目录时创建一些反馈。我发现文本字段直到最后才更新。

这是一个有同样问题的测试脚本:

struct ContentView: View {
    @State var thing: Int = 0

    var body: some View {
        return VStack {
            VStack {
                Text(String(thing))
                Button("Test") {
                    for i in 1 ... 1000000 {
                        thing = i;
                    }
                }
            }
        }
    }
}

同样,在循环完成之前,文本字段不会更新。我认为所有更新都会在代码完成后发生。

如何持续更新视图?

swift loops swiftui state
1个回答
0
投票
struct ContentView: View {
    @State var thing: Int = 0

    var body: some View {
        VStack {
            VStack {
                Text(thing, format: .number)
                Button("Test") {
                    thing = 1
                }
                .task(id: thing) {
                    if thing = 0 { return }
                    if thing > 10000 { return }
                    try? await Task.sleep(for: .seconds(1))
                    thing += 1
                }
            }
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.