AttributeGraph: цикл обнаружен через атрибут с помощью @State на игровых площадках - PullRequest
0 голосов
/ 28 сентября 2019

Я пытаюсь использовать @State SwiftUI на детской площадке.Вот мой код:

import UIKit
import PlaygroundSupport
import SwiftUI

struct ContentView: View {
    @State private var showGreeting = false

    var body: some View {

        Form {
            Button(action: {
                self.showGreeting.toggle()
            }) {
                Text("Toggle Greeting")
            }

            if showGreeting {
                Text("Hello World!")
            }
        }
    }
}

let viewController = UIHostingController(rootView: ContentView())

PlaygroundPage.current.liveView = viewController

Я вижу кнопку в режиме реального времени.Но если я щелкну по нему, он не покажет текст.Второй щелчок показывает текст.Дальнейшие клики, кажется, не имеют никакого значения визуально.

При каждом клике я получаю следующее сообщение в области журнала:

=== AttributeGraph: cycle detected through attribute 38 ===

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

Примечание: я использую MacOS Mojave, поэтому у меня нет опции предварительного просмотра SwiftUI.Я обожаю предварительный просмотр игровых площадок.

1 Ответ

0 голосов
/ 29 сентября 2019

В вашем SwiftUI нет ничего плохого, и он отлично работает при вставке в новый проект.

Если вы измените форму на VStack, он отлично работает на игровой площадке.Использование списка приводит к той же ошибке.Возможно, это ошибка, я бы сообщил об этом в Apple .

По моему опыту, если вы пока что застряли на Мохаве, просто создайте проект, в котором вы сможете запуститьтренажер.Компиляция и запуск занимает всего пару секунд, и вы экономите время, когда ваша игровая площадка SwiftUI падает, появляются странные ошибки, подобные этой, и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...