SwiftUI .refreshable: The changed View is displayed on the screen for a moment.

Development Environment

  • iOS 15.0
  • Xcode 13.1

Issue

When I execute 'PullToRefresh' with the following code, the updated View is displayed in the position where it is not pulled down by one frame.
I don't want this to appear, what should I do?

import SwiftUI

struct ContentView: View {
    
    struct Ocean: Identifiable {
        let name: String
        let id = UUID()
    }

    @State var oceans = [
        Ocean(name: "Pacific"),
        Ocean(name: "Atlantic"),
        Ocean(name: "Indian"),
        Ocean(name: "Southern"),
        Ocean(name: "Arctic")
    ]
    
    var body: some View {
        List(oceans) {
            Text($0.name)
        }
        .refreshable {
            oceans.shuffle()
        }
    }
}

gif

https://user-images.githubusercontent.com/37968814/161238304-e795377f-0d9b-4164-b039-adab9ec8e247.gif

The second PullToRefresh of gif is the relevant issue.

SwiftUI .refreshable: The changed View is displayed on the screen for a moment.
 
 
Q