Перезагрузить SwiftUI View для определенных элементов c - PullRequest
0 голосов
/ 01 марта 2020

В моем коде SwiftUI я создаю представление с именем LineView() (это из библиотеки графиков для swift на github здесь ). Я пытаюсь сгенерировать данные из него с помощью функции firestoreManager().getUserData(). В этом фрагменте кода много движущихся частей, и я постараюсь объяснить их. Тип данных User является пользователем, userInfo.updateStockChart() предоставляет обновленные данные. Однако это не важно. Важно то, что код в закрытии firestoreManager.getUserData() запускается после кода создания LineView() (обратите внимание, что в коде закрытия для запуска используется библиотека быстрого доступа google ). Мне нужен этот код для запуска ДО LineView(). Любые идеи? Я пытался решить это многими способами, но поскольку VStack сильно привязан к структуре, я не уверен, как это сделать.

struct homepageView: View {

@State var data: [Double] = [0,1,2]
var body: some View {
    var userInfo: User = User(username: "", name: "", portfolioID: "", friendList: [])
    var theData: [Double] = self.data
    firestoreManager().getUserData(collection: "Users", documentVar: "darrow_h19", documentField: "Username").then{ user in
        userInfo = user
        theData = userInfo.updateStockChart(portfolioID: "123456")
        print(theData)
    }
    print(theData)
    return VStack {
        LineView(data: theData, title: "$XYZ", legend: "Hello World",totalPoints: 18,yPosChange: 300)
    }
  }
}
...