SwiftUI передает вычисленную переменную следующему представлению

Я новичок в кодировании IOS и SwiftUI. Я много гуглил, но не мог найти решения, как передать вычисленную переменную в следующее представление. Вот фрагменты того, что у меня есть:

import SwiftUI

struct ContentView: View {

@State private var isShowingResultView = false

@State private var netRate = "0"
@State var daysMonth = "0"
@State var hoursWeek: String = "0"
@State var daysOnsite: String = "0"
@State var ticketCost: String = "0"
@State var hotelCost: String = "0"
@State var otherCost: String = "0"
//@State var travellCostResult: Double = 0.00

var travellCostPerHour: Double{
    get {
        let daysMonthNbr = Int(daysMonth) ?? 0
        let hoursWeekNbr = Int(hoursWeek) ?? 0
        let daysOnsiteNbr = Int(daysOnsite) ?? 0
        let ticketCostNbr = Double(ticketCost) ?? 0
        let hotelCostNbr = Double(hotelCost) ?? 0
        let otherCostNbr = Double(otherCost) ?? 0

        let travellCostPerWeek = (ticketCostNbr + (Double((daysOnsiteNbr-1))*hotelCostNbr)+otherCostNbr)
        
        let travellCostPerHour: Double = Double(travellCostPerWeek) / Double(hoursWeekNbr)
        
        return travellCostPerHour.isNaN ? 0 : travellCostPerHour
    }
}
.
.
.

var body: some View {
              HStack {
                    NavigationLink("Calculate", destination: ResultView(netRate: self.$netRate, travellCostPerHour: travellCostPerHour), isActive: $isShowingResultView).navigationBarTitle("Result").buttonStyle(GradientButtonStyle())
                    .adaptToKeyboard()
                }

struct ResultView: View {

@Binding var netRate: String
@Binding var travellCostPerHour: Double
.
.
.

struct ResultView_Previews: PreviewProvider {

   @State static var netRate: String = ""
   @State static var travellCostPerHour: Double = 0.00

   static var previews: some View {
      ResultView(netRate: $netRate, travellCostPerHour: $travellCostPerHour )
   }
}

Я получаю это сообщение об ошибке в navigationLink для travellCostPerHour: Невозможно преобразовать значение типа Double в ожидаемый тип аргумента Binding. Можно ли указать мне правильный путь, пожалуйста?


person RRI    schedule 13.07.2020    source источник


Ответы (1)


Если это вычисляемое свойство, привязка не требуется, передайте его как есть

struct ResultView: View {

@Binding var netRate: String
var travellCostPerHour: Double      // << just regular

// .. other code
person Asperi    schedule 13.07.2020
comment
Вау. Жизнь может быть такой простой. Спасибо, Аспери! - person RRI; 13.07.2020