gpt4 book ai didi

ios - 有没有办法在 View 中的多个 subview 上调用函数?

转载 作者:行者123 更新时间:2023-12-01 19:30:04 24 4
gpt4 key购买 nike

我正在开发一个天气应用程序,其中每个统计数据都有 subview :CurrentWeather、HourlyForecast 和 DailyForecast 都是单独的 View
我目前正在为每个 View 进行单独的 api 调用,但我知道这是非常低效的,我想知道如何才能为所有事情只调用一次 func。我试过把函数放在 .onAppear在我的应用程序的“主屏幕”上,它具有所有 subview ,但由于 subview 中正在访问我需要的数据,因此它看起来不起作用。
非常感谢任何帮助,因为我对 SwiftUI 还很陌生
这是我现在基本上正在做的一个版本:

@EnvironmentObject var data: WeatherAPI

VStack {

// Weather Condition and Temp

CurrentWeather().environmentObject(WeatherAPI())

//Hourly Forecast

HourlyModuleView()

//Weekly Forecast
ForecastModuleView().environmentObject(WeatherAPI())

}.onAppear(perform: data.loadData)

最佳答案

您应该删除环境对象的过度定义,并使用我理解的 HomeScreen 中的一个。 View ,因为注入(inject) Root View 的环境对象自动可用于所有 subview ,例如

@EnvironmentObject var data: WeatherAPI

...

VStack {

// Weather Condition and Temp

CurrentWeather() // << data injected automatically

//Hourly Forecast

HourlyModuleView() // << data injected automatically

//Weekly Forecast
ForecastModuleView() // << data injected automatically

}.onAppear(perform: data.loadData)

关于ios - 有没有办法在 View 中的多个 subview 上调用函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63433014/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com