Eureka- 根据 ActionSheetRow 值隐藏行

Eureka- Hiding row depending on ActionSheetRow value

我试图根据在它之前的 ActionSheetRow 中选择的值隐藏一行。如果用户选择他们生活在寒冷的气候中,我想隐藏或保持隐藏他们喜欢游泳的地方的 ActionSheetRow .

 func testForm(){
        form +++ Section("Test")
            <<< TextRow("Your Name"){
                [=10=].placeholder = "Enter Your Name"
        }
            <<< ActionSheetRow<String>("placeOfLiving") {
                [=10=].title = "Continent"
                [=10=].selectorTitle = "Where do you live?"
                [=10=].options = ["Antartica","Australia","Africa", "Asia", "Europe", "North America", "South America"]

        }
            <<< ActionSheetRow<String>("swimming") {
                [=10=].hidden = Condition.function([])
                { form in
                    if let section = form.rowBy(tag: "placeOfLiving") as? ActionSheetRow<String> {
                        if section.value == "Antartica" {
                            return true
                        }
                    }
                    return false
                }
                [=10=].title = "Swimming"
                [=10=].selectorTitle = "Where do you like to swim?"
                [=10=].options = ["Pool","Beach","Lake", "River"]

        }

    }

我将如何检查 ActionSheetRow 的值然后隐藏下一行?我尝试了不同的方法来进行这项检查,但找不到类似的情况。欢迎任何反馈

您需要传递要在 hidden function array 中检查值的 rowstag,如下所示。

[=10=].hidden = Condition.function(["rowTag"])

因此,您的代码将变为,

[=11=].hidden = Condition.function(["placeOfLiving"])
   { form in
      if let row = form.rowBy(tag: "placeOfLiving") as? ActionSheetRow<String> {
          return section.value == "Antartica"
       }
       return false
   }