URLRequest.addValue导致SwiftUI日历还原日期

问题描述

下面的函数每3秒调用一次,如下所示:

func fetchItems(){
    let url = URL(string: itemUrl)!
    var request = URLRequest(url: url)
    request.httpMethod = "GET"
    request.addValue("Item \(self.item)",forHTTPHeaderField: "Authorization")
    let task = URLSession.shared.dataTask(with: request,completionHandler: parseJasonObject)
    task.resume()
}

func parseJasonObject(data: Data?,urlResponse: URLResponse?,error: Error?){
    guard error == nil else {
        print("error: \(error!)")
        return
    }
    
    guard let content = data else{
        print("No data")
        return
    }
    
    if let decodedResponse = try? JSONDecoder().decode([itemdata]?.self,from: content) {
        // we have good data – go back to the main thread
        DispatchQueue.main.async {
            self.items = decodedResponse
            self.dataHasLoaded = true // state variable that determines whether or not data has been loaded
        }
    }
    
}

如果我注释了request.addValue()行,它将导致日历不会出现奇怪的故障,如果您将日历导航到新的月份或其他日期,则在运行上述功能时,它将日历还原为它是开始屏幕(显示当前日期)。日历如下:

@State private var selectedStartTime = Date()
let timer = Timer.publish(every: 3,on: .main,in: .common).autoconnect()

HStack {
    Spacer()
    DatePicker("",selection: self.$selectedStartTime,in: Date()...) //where self.$selectedStartTime is just a variable that is defined by the date/time the user selected
        .datePickerStyle(GraphicalDatePickerStyle())
    Spacer()
}

https://www.youtube.com/watch?v=ns9XXgrmiZk

如您所见,如果我去另一个月而不选择该月中的日期,则当fet​​chEvents()函数运行时-它在onReceive中每3秒运行一次-导致日历返回到当前选定的日期。如果我在其他月份选择新的一天,则这不是问题。任何帮助将不胜感激。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...