Swiftui 如何设置嵌套在“.navigationBarItems”中的按钮的动画`

Swiftui 如何设置嵌套在“.navigationBarItems”中的按钮的动画`,swiftui,Swiftui,我试着在按钮被点击时设置它的动画。到目前为止,以下代码仍然有效 NavigationView { List { Button(action: { self.showDetail.toggle() }) { Image(systemName: "chevron.right.circle") .imageScale(.large)

我试着在按钮被点击时设置它的动画。到目前为止,以下代码仍然有效

NavigationView {
        List {
            Button(action: {
                self.showDetail.toggle()
            }) {
                Image(systemName: "chevron.right.circle")
                    .imageScale(.large)
                    .rotationEffect(.degrees(showDetail ? 90 : 0))
                    .scaleEffect(showDetail ? 1.5 : 1)
                    .padding()
                    .animation(.spring())
            }
        }
    }
但是,当我将它移动到
NavigationView
navigationBarItems
中时,它停止工作;它只是捕捉到大小和旋转。我该如何解决这个问题

var body: some View {
        NavigationView {
            List {
                Text("Does not work")
            }
                .navigationBarItems(trailing:
                    Button(action: {
                        self.showDetail.toggle()
                    }) {
                        Image(systemName: "chevron.right.circle")
                            .imageScale(.large)
                            .rotationEffect(.degrees(showDetail ? 90 : 0))
                            .scaleEffect(showDetail ? 1.5 : 1)
                            .padding()
                            .animation(.spring())
                    }
            )
        }
    }

有些奇怪的事情正在发生。如果您在图像中添加一个onAppear(),并将某个内容记录到控制台,您将看到每次点击它时它的闭包都会执行。似乎它每次都会被破坏和重新创建,这可能是导致动画问题的原因-(bug?我明白了。我想这是意料之中的事,因为SwiftUI仍处于测试阶段。要么是这样,要么就是这样。我想我们会在几个月后发现一些奇怪的事情正在发生。如果你添加一个onAppear()您将看到,每次点击它时,它的闭包都会执行。它似乎每次都会被破坏和重新创建,这可能是导致动画问题的原因-(bug?我明白了。我想这是意料之中的事,因为SwiftUI仍处于测试阶段。要么是有意的,要么是有意的。我想我们会在几个月后发现