title: NavigationLink inside LazyVGrid cycles all entries on back, SwiftUI
body: <p>I have an image grid. Each image on tap should push a view on the NavigationView with the image details.</p>
  <p>The navigation link works as intended, but when I press the back button it opens the next image and so on until it has cycled all the images. What is going on?</p>
  <p>This is the <code>View</code>:</p>
  <pre><code>struct ImageGrid: View {
      
      @ObservedObject var part: Part
      @State private var showingImagePicker = false
      @State private var inputImage: UIImage?
      var body: some View {
          Button(&quot;add images&quot;){
              self.showingImagePicker = true
          }
          LazyVGrid(columns: [GridItem(.adaptive(minimum:100))]){
              ForEach(part.images){ image in
                  ZStack {
                      Image(uiImage: image.thumb)
                          .resizable()
                          .scaledToFit()
                      NavigationLink (
                          destination: ImageDetail(image:image),
                          label: {
                              EmptyView()
                          }
                      ).buttonStyle(PlainButtonStyle())
                  }
              }
          }
          .sheet(isPresented: $showingImagePicker, onDismiss: loadImage) {
              ImagePicker(image: self.$inputImage)
          }
          
      }
      // other functions ...
      ...
  }
  </code></pre>
  <p>and this is the detail <code>View</code></p>
  <pre><code>struct ImageDetail: View {
      
      @ObservedObject var image: TrainingImage
      var body: some View {
          VStack {
              Image(uiImage: image.content)
                  .resizable()
                  .scaledToFit()
          }
      }
  }
  </code></pre>
  <p>EDIT:</p>
  <p>This is a self-contained example isolating the behaviour. It seems to stop working correctly when the grid is inside a form section. Eliminating the form and the section the navigation link works correctly</p>
  <pre class="lang-swift prettyprint-override"><code>
  
  import SwiftUI
  
  extension String: Identifiable {
      public var id:Int {
          self.hashValue
      }
  }
  
  struct ImageDetail: View {
      
      var image: String
      var body: some View {
          VStack {
              Image(uiImage: UIImage(systemName: image)!)
                  .resizable()
                  .scaledToFit()
          }
      }
  }
  
  struct ContentView: View {
      @State var images:[String] = [&quot;plus&quot;, &quot;minus&quot;]
      var body: some View {
          NavigationView {
              Form {
                  Section {
                      LazyVGrid(columns: [GridItem(.adaptive(minimum:100))]){
                          ForEach(images){ image in
                              NavigationLink (
                                  destination: ImageDetail(image: image),
                                  label: {
                                      Image(uiImage: UIImage(systemName: image)!)
                                          .resizable()
                                          .scaledToFit()
                                  }
                              ).buttonStyle(PlainButtonStyle())
                          }
                      }
                  }
              }
          }
      }
  }
  
  struct ContentView_Previews: PreviewProvider {
      static var previews: some View {
          ContentView()
      }
  }
  
  </code></pre>