@Published не обновляет пользовательский интерфейс при изменении значения модели представления
В моем ViewController (UIHostingController
) у меня есть viewModel (ссылочный тип), общий для ViewController и его rootView. А у viewModel есть одно свойство, которое обернуто как .
- При получении ответа на viewcontroller от вызова API.
- обновление viewModel полученными данными с сервера
- здесь после установки значения
@Published
он не обновляет пользовательский интерфейс
Код ViewController:
final class DashboardSceneViewController: UIHostingController<DashboardSceneView> {
var viewModel: DashboardSceneViewModel?
func setVm(response : Model){
viewModel.data = response. ///Here it should update DashboardSceneView But not updating
}
}
ViewModel:
protocol DashboardSceneViewModel {
var delegate: DashboardSceneViewDelegate? { get set }
var homeJson : HomeModel? {get set}
}
class DefaultDashboardSceneViewModel: DashboardSceneViewModel{
@Published var homeJson: Model?
}
Вид:
//Not getting redrawn on change in @published property change
struct DashboardSceneView: View {
var viewModel: DashboardSceneViewModel
var body: some View {
VStack {
if viewModel.homeJson != nil {
Text(viewModel.homeJson?.header ?? "")
}
Button("Tap"){
print()
}
}
}
}