NavigationLink срабатывает из любой точки обзора

Я пытаюсь настроить новый вид при щелчке значка речевого пузыря. В настоящее время новое представление запускается правильно, но я могу щелкнуть в любом месте тела моегоPostView и NavigationLinkбудет запущен. Я не могу заставить новое представление запускаться только при нажатии значка речевого пузыря.

В дополнение к этому я не могу заставить серую стрелку исчезнуть.

PostView

struct PostView: View {
    var post: Post
    @State var postComment: String
    @State var showPlaylistsView = false
    @State var action: String? = ""
    @EnvironmentObject var viewHandler: ViewHandler


    var body: some View {
        VStack {
            HStack {
                Text(post.songInfo.album).font(.title)
                Spacer()
                Text(post.songInfo.artist)
            }.padding()

            URLImage(url: post.songInfo.albumArtURL)
                .aspectRatio(contentMode: .fit)

            NavigationLink(destination: Text(self.post.songInfo.track), tag: post.id, selection: self.$action) {
                EmptyView()
            }

            HStack {
                Spacer()
                Image("comment-icon")
                    .onTapGesture {
                        self.action = self.post.id
                }
                Spacer()
            }


            HStack {
                Text(post.user.userName)
                Spacer()
            }.padding()

            HStack {
                Text(post.textContent)
                Spacer()
            }.padding()


        }
    }



}

СообщенияПросмотр

struct PostsView: View {
    @ObservedObject var fbVM = FirebasePosts()
    @State private var action: Int? = 0

    var body: some View {
        NavigationView {
            List {
                ForEach(fbVM.visiblePosts) { post in
                    PostView(post: post, postComment: "")
                }.listRowInsets(EdgeInsets())

            }
        }
    }
}

Как указано выше, серая стрелка все еще присутствует, и нажатие в любом месте сообщения вызовет NavigationLink. На изображении ниже вы можете увидеть, что весь пост выделен серым цветом. Это происходит независимо от того, где вы щелкаете вPostView.

пример

0 ответов

Другие вопросы по тегам