Skip Navigation

If you have more than 2 conditions, and do not want to recreate an element with if else statement, what do you do since ternary operations might get too confusing?

3

You're viewing a single thread.

3 comments
  • One option would be to use an enum with a label computed property.

    enum TransitionState {
        case stageOne, stageTwo, stageThree
    
        var label: String {
            switch self {
                 case .stageOne: "Stage one!"
                 case .stageTwo: "Stage two!"
                 case .stageThree: "Stage three!"
            }
        }
    }
    
    struct MyView: View {
        @State var transitionState: TransitionState = .stageOne
    
        var body: some View {
            Text(transitionState.label)
        }
    }