首页 > 解决方案 > 参数类型(字符串)->()的问题-SwiftUI

问题描述

当我运行函数 RadioButtonGroups 时出现以下错误 - 'nil' 与预期的参数类型 '(String) -> ()' 不兼容我该如何解决?

我如何运行 - RadioButtonGroups.init(callback: nil, selectedId: "")

下面是 RadioButtonGroups 的代码

enum TypeOfSale: String {
    case sale = "Sale"
    case change = "Change"
}

struct RadioButtonGroups: View {
    let callback: (String) -> ()
    
    @State var selectedId: String = ""
    
    var body: some View {
        HStack {
            radioSaleMajority
            radioChangeMajority
        }
    }
    
    var radioSaleMajority: some View {
        RadioButtonField(
            id: TypeOfSale.sale.rawValue,
            label: TypeOfSale.sale.rawValue,
            isMarked: selectedId == TypeOfSale.sale.rawValue ? true : false,
            callback: radioGroupCallback
        )
    }
    
    var radioChangeMajority: some View {
        RadioButtonField(
            id: TypeOfSale.change.rawValue,
            label: TypeOfSale.change.rawValue,
            isMarked: selectedId == TypeOfSale.change.rawValue ? true : false,
            callback: radioGroupCallback
        )
    }
    
    func radioGroupCallback(id: String) {
        selectedId = id
        callback(id)
    }
}

标签: swiftswiftuiradio-button

解决方案


定义默认值,例如

struct RadioButtonGroups: View {
    var callback: (String) -> () = { _ in }

    // ...

现在可以将其用作

RadioButtonGroups(selectedId: "")

推荐阅读