Использование SwiftUI PreviewProvider для отображения массива - PullRequest
2 голосов
/ 28 октября 2019

Благодаря некоторой помощи здесь я получил это в основном работающим, но я не уверен, что правильный синтаксис для того, как я могу заставить PreviewProvider SwiftUI отображать содержимое моего массива "myDataModels".

Здесьэто то, что у меня есть:

import SwiftUI

struct Overview: View {
    var myDataModels: [MyDataModel]

    var body: some View {
        List {
            ForEach(myDataModels) { model in
                Section(header: Text("\(model.firstName) \(model.lastName)")) {

                    ForEach(model.cities, id: \.name) { (city: City) in

                        Section(header: Text(city.name).fontWeight(.bold)) {

                            ForEach(city.towns, id: \.name) { town in
                                Text(town.name)
                            }
                        }
                    }
                }
            }
        }
    }
}

Который отлично компилируется, но я не уверен, что правильный способ ссылки на myDataModels для вызова PreviewProvider чуть ниже блока выше. Вот что у меня там сейчас.

struct Overview_Previews: PreviewProvider {
    static var previews: some View {
        Overview(myDataModels: userData[0])
    }
}

userData - это ссылка на файл JSON. Но я получаю ошибку:

Cannot convert value of type 'MyDataModel' to expected argument type '[MyDataModel]'

Любая помощь нам наиболее ценится.

1 Ответ

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

Предполагая, что вы определили где-нибудь userData, вы можете просто сделать

Overview(myDataModels: userData)

Или, если вы хотите просто отправить один конкретный элемент:

Overview(myDataModels: [userData[0]])

Если это не такработа, пожалуйста, опубликуйте свое определение userData.

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