簡體   English   中英

從 class ObservableObject 內部的視圖傳遞變量?

[英]Passing variable from view inside the class ObservableObject?

我有這個結構

struct Calendar: View {
   @State private var selectDate = Date()
        var body: some View {
// my code 
}
Class fetchmydate: ObservableObject {
func fetchmydata (){
// i want to pass selectDate to here in "dd-mm-yyyy" format as string 
}
}
}

我想將視圖中的 selectdate 傳遞到 observedobject class 中,而不是相反,但以這種格式“dd-mm-yyyy”並作為一個字符串。 如果我沒有通過這個選定的日期,它會說它無法讀取 function 中的選定日期。

我知道這是一個有點奇怪的問題,但如果它不能在邏輯上完成(通過)那么你有什么建議來傳遞日期數據並非常感謝我的朋友們。

您想要實現的目標並非聞所未聞,只是更容易將整個邏輯傳遞給 viewModel,我相信您正在尋找這個:

風景:

struct ViewDate: View {
@State private var date = Date()
var myviewModel = viewModel()

var body: some View {

    DatePicker(selection: $date, displayedComponents: .date) {
        Text("Select your date")
        
    }
    .datePickerStyle(.wheel)
    .onChange(of: self.date) { newDate in
        let dateFormatter = DateFormatter()
        dateFormatter.dateFormat = "dd-MM-yyyy"
        let stringDate = dateFormatter.string(from: newDate)

        myviewModel.fetchmydata(selectedDate: stringDate)
    }

   
}
}

“視圖模型”

class viewModel: ObservableObject {

init() {}

func fetchmydata (selectedDate: String) {
    
// i want to pass selectDate to here in "dd-mm-yyyy" format as string
    print(selectedDate)
}

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM