1

EDITは、変数の宣言を示すソースコードを追加しました

@ObservedObject であるビュー モデル プロパティを初期化しようとしています。 @ObservedObject private var viewmodel : ExpenseListViewModel

コンストラクターのパラメーターとして ManagedObjectContext を受け入れるリポジトリでビュー モデルを初期化したい

ビューモデルにはプロパティラッパーがあるため、計算されたプロパティとして作成することもできません。

初期化でリポジトリとビューモデルを初期化しようとすると、初期化される前に自己が使用されます

struct ContentView: View {
    @Environment(\.managedObjectContext) private var moc
    private (set) var repo: Repository
    @ObservedObject  private var viewmodel : ExpenseListViewModel 
    init() {
        //let repository = CoreDataRepository(Context: moc)
        repo = CoreDataRepository(Context: self.moc)
        self.viewmodel = .init(repository: repo)
    }
    var body: some View {
        Text(viewmodel.Expenses[0].Name ).onAppear(perform: viewmodel.getExpenses )
    }
}
4

1 に答える 1