Binding a function from ObservableObject

my class contains a function,

class UserModel: ObservableObject {

  func fetchUser(){
    // code
  }
}

i call this class in a struct

struct UserView: View {
  @StateObject var userModel = UserModel()
  @State var loading: Bool = false

  var body: some View {
    ButtonComponent(loading: $loading)
  }
}

I would like to access the class in ButtonComponent just like i did with the loading variable by binding it. The ButtonComponent is like this..

struct ButtonComponent: View {
  @Binding var loading: Bool

  var body: some View {
    Button(action: {loading.toggle()}){
      Text("Submit Button")
    }
  }
}

Help on how to achieve this is appreciated

Answered by coucoseth in 717368022

i found a fix binding it in ButtonComponent just like i did for loading variable like so

@Binding var userMdl: UserModel

Then in the UserView when calling the ButtonComponent i bind the userModel state object like so..

ButtonComponent(loading: $loading, userMdl: .constant(userModel))
Accepted Answer

i found a fix binding it in ButtonComponent just like i did for loading variable like so

@Binding var userMdl: UserModel

Then in the UserView when calling the ButtonComponent i bind the userModel state object like so..

ButtonComponent(loading: $loading, userMdl: .constant(userModel))
Binding a function from ObservableObject
 
 
Q