From 82c097d216ab4b2930e09b7dadda1f0487279cb7 Mon Sep 17 00:00:00 2001 From: racechao Date: Thu, 4 Apr 2024 10:34:54 +0800 Subject: [PATCH] Fix bug on url changes use @StateObject to reinit imageModel when url changes --- SDWebImageSwiftUI/Classes/WebImage.swift | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/SDWebImageSwiftUI/Classes/WebImage.swift b/SDWebImageSwiftUI/Classes/WebImage.swift index 4b0d091..275b31d 100644 --- a/SDWebImageSwiftUI/Classes/WebImage.swift +++ b/SDWebImageSwiftUI/Classes/WebImage.swift @@ -91,9 +91,6 @@ public struct WebImage : View where Content: View { /// True to start animation, false to stop animation. @Binding public var isAnimating: Bool - /// A observed object to pass through the image model to manager - @ObservedObject var imageModel: WebImageModel - /// A observed object to pass through the image handler to manager @ObservedObject var imageHandler = WebImageHandler() @@ -102,6 +99,8 @@ public struct WebImage : View where Content: View { @ObservedObject var indicatorStatus : IndicatorStatus + @StateObject var imageModel: WebImageModel + @StateObject var imagePlayer = ImagePlayer() @StateObject var imageManager : ImageManager @@ -140,7 +139,7 @@ public struct WebImage : View where Content: View { imageModel.url = url imageModel.options = options imageModel.context = context - _imageModel = ObservedObject(wrappedValue: imageModel) + _imageModel = StateObject(wrappedValue: imageModel) let imageManager = ImageManager() _imageManager = StateObject(wrappedValue: imageManager) _indicatorStatus = ObservedObject(wrappedValue: imageManager.indicatorStatus)