У меня есть список меню
let muscleEtfs = Menu(name:"MuscleETFs", image:"image", destination: .muscleETFs)
let menus: [Menu] = [home, marketTrend, indexes, sectors, stockAnalysis, backtest, screener, myPortfolio, watchList, muscleStocks, muscleEtfs]
Моя цель - условно изменить назначение NavigationLink в SwiftUI. Может ли кто-нибудь объяснить мне, почему корпус переключателя не работает, но если работает.
let muscleEtfs = Menu(name:"MuscleETFs", image:"image", destination: .muscleETFs)
var body: some View {
let menus: [Menu] = [home, marketTrend, indexes, sectors, stockAnalysis, backtest, screener, myPortfolio, watchList, muscleStocks, muscleEtfs]
return List {
ForEach(menus) { menu in
// This does not work
switch menu.destination {
case .news:
NavigationLink(
destination: HomeNewsView(menu: menu)
)
{
Text("\(menu.name)")
}
default:
NavigationLink(
destination: HomeNewsView(menu: menu)
)
{
Text("\(menu.name)")
}
}
// This does
if menu.destination == .news {
NavigationLink(
destination: HomeNewsView(menu: menu)
)
{
Text("\(menu.name)")
}
}
}
}
Использование условий переключения приводит к ошибке компиляции в Xcode
Закрытие, содержащее оператор потока управления, не может использоваться с компоновщиком функций 'ViewBuilder'