更改ViewModel中的数据后,如何在另一个结构中使用@ObservableObject更新视图?

时间:2020-07-26 18:16:12

标签: swift swiftui

我想做的是,当用户搜索时,将弹出一个按钮列表,当我单击该按钮时,我希望按钮用新数据更新视图。但对我而言,错误之处在于它不会更新视图,我曾尝试在ViewModel中打印数据并显示正确的数据,但是它不会刷新那些不在{{ 1}}和struct。这是我所拥有的一个快速且最小的版本。

func

因此,上面带有struct TestPublished: View { @ObservedObject var vm = ViewModelTest() @State var selectedButton = "" var body: some View { VStack { Text("TestPublished: \(vm.TripData.count)") Button(action: { selectedButton = "København" self.searchButtonTest() }, label: { Text("København") }) TestView(selectedButton: $selectedButton) } } func searchButtonTest(){ // Updating view let encodeButton = selectedButton.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)! let urlString = "http://xmlopen.rejseplanen.dk/bin/rest.exe/trip?originId=8600790&destCoordX=12565562&destCoordY=55673063&destCoordName=\(encodeButton)&format=json" self.vm.searchButtonTest(urlString: urlString) } } 的内容将刷新视图,但是我不明白的是,由于ViewModel中的数据已更改,那么TestPublished()为什么不告诉{{1 }}是否获得了新数据并同时刷新了视图?

@ObservedObject

Video of the problem

0 个答案:

没有答案