问题标签 [onappear]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
swiftui - 当 TabView 内的 NavigationView 时,SwiftUI onAppear 调用了两次
所以我有一个 TabView,其中每个选项卡都嵌入在 NavigationView 中。在每个选项卡第一次出现时,我得到以下生命周期调用 onAppear()、onDisappear()、onAppear()。所以看起来 onAppear 被调用了两次。这只是第一次发生。如果我导航回同一个选项卡,只有 onAppear() 被调用,而且只有一次。
这是一个最小的例子:
这是打印出来的结果:
如果我单击第二个选项卡,会发生以下情况
swift - 加载视图和 onAppear
我有一个应用程序,它最终会显示一长串数据。除了测试 Lazy Stacks、加载异步和其他技术之外,我还想提供一条加载消息。有趣的是,似乎只有最原子的视图(在这种情况下是 a Scrollview
,而不是 a List
)被重新计算。代码如下:
三行中的print
所有 3 行都在视图的初始加载时打印,但是当更改列表时(这就是 SectionBar 所做的,我已经删除了过滤代码),只有 #3 会在重新计算数据时打印。很明显,ForEach 和 ZStack 没有被重绘,只有 ForEach 中的单个元素。添加indexed()
感觉有点复杂,在// 1
打印之后和数据出现之前仍然有大约 1/4 秒的延迟,这让我相信那里有一个隐藏的步骤。
测试视图数据是否已加载的最可靠方法是什么,以及在行//1
和出现的视图之间发生了什么?或者,创建加载消息的更好方法是什么?
提前致谢。
swift - SwiftUI 上出现 AVAudioPlayer 播放多次
我试图在我的应用程序上添加背景音乐的 AVAudioPlayer,我在主屏幕上启动播放器,尝试在应用程序打开时开始播放,但出现意外行为......
它会播放并立即继续创建新的播放器和播放那些播放器,所以有几十个相同的声音同时
播放音乐的启动和播放功能
出现调用函数
编辑:示例代码...
swiftui - SwiftUI - .onAppear 未触发
我有这个问题,我在循环一些数据,然后在子视图中我从 API 加载一些额外的数据。根据从该 API 返回的数据,我希望逻辑检查是否显示它。
我尝试了不同的解决方案,但似乎无法解决问题。
任何帮助都会很棒。
ios - SwiftUI 在第一个选项卡出现时加载 TabView 中的所有视图
我的 TabView 看起来像这样:
当我进入 TabView 时,我将在 TabView1 上。我想要做的是当我在 TabView1 上时加载 TabView2 中的内容,以便在我单击并切换到 TabView2 时准备好 TabView2 中的内容。
我猜我需要在任何 .onAppear 方法中做一些事情,但我到底应该怎么做?非常感谢!
swiftui - 如何检测 LazyVGrid 的项目是否被重新构建?
在我的应用程序中,LazyVGrid
多次重新构建其内容。网格中的项目数可能不同或保持不变。每次必须以编程方式将特定项目滚动到视图中。
当第LazyVGrid
一个出现时,可以使用onAppear()
修饰符将项目滚动到视图中。
有什么方法可以检测LazyVGrid
下一次完成重新构建其项目的时刻,以便可以安全地滚动网格?
这是我的代码:
网格
帮助枚举确定要在网格中显示的列数
简化的视图模型
swiftui - 在 NavigationView 上应用 .navigationViewStyle(.stack) 时调用了两次 onAppear 修饰符
【总结问题】
.onAppear
.navigationViewStyle(.stack)
在 NavigationView 上使用时调用了两次修饰符。
[描述预期和实际结果]
我期望.onAppear
被调用一次,但.onAppear
被调用两次。
编辑:我删除了项目的链接并添加了一个更简单的模板代码来显示问题。
这是日志:
json - SwiftUI - 获取远程 JSON 数据中的数据以在应用启动时刷新
我是一个菜鸟(我的代码/模型目前会显示它,所以请放轻松!)。
我正在尝试创建一个食谱风格(cenotes)应用程序。
这样我就可以更新数据,我有一个远程 json 文件,因此用户无需重新安装即可获取更新的数据。
该应用程序成功检索和解析数据(这是一个胜利!),但仅在首次安装时。
当它在线更改时,它不会随后刷新数据。我尝试使用 .onAppear 和 .refreshable 均未成功。我需要删除应用程序并重新安装它才能获取更新的数据。
以下是我文件的一些编辑版本:有人可以帮忙吗?我认为我只有一个 @StateObject/@EnvironmentObject 或类似的不正确的东西,但无法发现错误。
Locations.swift
Location.swift - 虚拟机
App.swift - 应用程序打开此选项卡视图
ListView.swift - 第一个选择的选项卡是这个视图 - 这些位置在初始安装后不会更新:
swift - SwiftUI:为什么 onAppear 会执行两次?
StepPreview 打印两次。当视图加载时(选择选项卡时)一次,当用户返回选项卡时再次。在 NavigationView 上使用 onAppear 时这是预期的吗?
swift - SwiftUI:使用 onAppear 的替代方法是什么?
我想加载健康数据,以便在点击选项卡时显示一次用户步骤。但是通过使用 onAppear,每次点击选项卡时,它都会再次加载步骤并显示两次。我相信这是由于onAppear。这里应该使用什么替代方案?