Any `Reader` views(like GeometryReader) doesn't update view when specific case.

In Reader views such as GeometryReader as well as ScrollViewReader, the content area does not seem to detect changes in state correctly.

I googled the issue and found a few similar occurrences, but it wasn't clear to me why this was happening.

I think that a bug exist in some Reader views's content rendering logic.

This is the code that reproduces the behavior.

Changes in state are correctly reflected in areas other than the GeometryReader.

class ViewModel: ObservableObject {
    @Published
    var show: Bool = false
}

struct Parent: View {
    let viewModel = ViewModel()
    
    var body: some View {
        Child(viewModel) {
            VStack {
                GeometryReader { _ in
                    // Not updated
                    Text(viewModel.show ? "A" : "B")
                }
                
                // Updated
                Text(viewModel.show ? "AA" : "BB")
                Button("toggle") {
                    viewModel.show.toggle()
                }
            }
        }
    }
}

struct Child<Content: View>: View {
    var body: some View {
        content()
    }
    
    @StateObject
    var viewModel: ViewModel
    let content: () -> Content
    
    init(_ viewModel: ViewModel, content: @escaping () -> Content) {
        self._viewModel = .init(wrappedValue: viewModel)
        self.content = content
    }
}

Do you have any information on this issue?

Any `Reader` views(like GeometryReader) doesn't update view when specific case.
 
 
Q