Закрытие, содержащее объявление, не может быть использовано с конструктором функций 'ViewBuilder' - PullRequest
0 голосов
/ 10 ноября 2019

Я не могу объявить переменную внутри блока просмотра swift ui

 var body: some View {
     let isHuman = false
     Text("Levels \(isHuman)")
 }

Ответы [ 2 ]

1 голос
/ 10 ноября 2019

вы не должны создавать переменную внутри блока компоновщика, вы должны создавать ее вне области видимости тела,

var isHuman = false
  var body: some View {
      Text("Levels \(isHuman)")
  }

Swift UI использует блок компоновщиков функций, который может содержать только контент, понятный для компоновщика,Кроме того, он играет большую роль в придании Swift декларативного ощущения программирования. Цель этой функции - включить создание встроенных DSL в Swift, что позволяет вам определять контент, который переводится во что-то еще в дальнейшем

0 голосов
/ 10 ноября 2019

Не так уж и плохо, вы можете ... другой вопрос, действительно ли вам это нужно, но когда вам действительно это нужно, вы знаете, что можете. Вам просто нужно помнить, что построитель представлений должен возвращать некоторое представление, и оно должно быть одного типа во всех возможных ветвях

var body: some View {
    let value = "" // construct somewhere or something
    return Text("Levels \(value)")
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...