RxSwift -bindViewModel

第69行cell.configure一直進不去 RxSwift -bindViewModel 第69行cell.configure一直進不去 原因如下: required init?(coder aDecoder: NSCoder) 是 UIKit 控制器初始化的一部分,尤其是從 Storyboards 或 Xibs 中加載時。如果你正在嘗試從 Storyboard 或 Xib 中加載你的 ZooViewController,那麼就需要實現這個初始化方法。在你的程式碼中, required init?(coder aDecoder: NSCoder) { fatalError(“init(coder:) has not been implemented”) }你用 fatalError("init(coder:) has not been implemented") 拋出了一個執行時期的錯誤。 如果你確實不需要從 Storyboard 或 Xib 加載,你可以避免使用 ZooViewController 作為 Storyboard 或 Xib 的類別,或者避免透過 Storyboard 或 Xib 實例化 ZooViewController。在這種情況下,你的 init(coder:) 方法將永遠不會被呼叫,因此你的 fatalError 也不會觸發。 如果你需要從 Storyboard 或 Xib 加載 ZooViewController,那麼你需要提供 init(coder:) 方法的實現。這可能意味著你需要提供一個預設的 ZooViewModel,或者提供一種方式來設定 ZooViewModel,如下所示: required init?(coder aDecoder: NSCoder) { self.viewModel = ZooViewModel() super.init(coder: aDecoder) }最後從Main.storyboard的viewController冠上我要的ZooViewController, 問題就解決了.

July 21, 2023 · 1 min · Peter

Flutter 狀態監聽問題

如何解決 var appState = context.watch(); Flutter 狀態監聽問題 如何解決 var appState = context.watch(); 這個錯誤訊息表示您嘗試在不同的路由中讀取 provider。 Provider 是有範圍的。如果您在一個路由中插入了一個 provider,那麼其他路由將無法訪問該 provider。 要解決此問題,您需要確保在讀取 provider 的 widget 和提供 provider 的 widget 在同一個路由中。如果您需要在不同的路由中訪問 provider,則需要將 provider 提升到共享範圍,例如將 provider 提供給整個應用程式。 main.dart改這樣後就沒有問題了。 因為有用到MyFavState, 所以要 import ‘package:top_100_movies/views/widgets/movie_card.dart’; 路徑要完整,我少加了/widgets

July 13, 2023 · 1 min · Peter