swiftui - 即使 childView 当前未显示,为什么 TabView 在 childView 上调用 onAppear?
问题描述
出于某种原因,onAppear 被调用了两次。我创建了一个测试项目并尝试添加另一个解决方案中编写的 ZStack,但它对我不起作用。在这种情况下可以做什么?
struct ContentView: View {
let items = ["One","Two"]
var body: some View {
TabView {
ForEach(self.items, id: \.hashValue) { (item) in
TextView(text: item)
.tabItem { Text(item) }
.tag(item)
}
}
}
}
struct TextView : View {
let text: String
@State private var params: String = ""
var body: some View {
ZStack {
Text("\(self.text): \(self.params)")
}
.frame(maxWidth: .infinity, maxHeight: .infinity)
.onAppear {
print(">>> \(self.text)")
self.params = "onAppear"
}
.onDisappear {
print("<<< \(self.text)")
self.params = "onDisappear"
}
}
}
如果您切换一次到两次:
>>> One
>>> Two
<<< One
>>> One
解决方案
推荐阅读
- tensorflow - 计算两个 RGB 点云之间的差异
- python - 试图获取事件 channel_name_change
- forms - 我可以按分隔符拆分并在 SharePoint 列表中创建新行吗?
- javascript - JavaScript 或 jQuery 中的 HTML 表单验证逻辑
- controller - 线性化一阶传递函数
- ios - 找不到目标“i386-apple-ios-simulator”的模块“HandwritingRenderer”;在终端中执行“pod lib lint --allow-warnings”命令时
- javascript - 如何在反应中消除对按钮单击的关注?
- reactjs - Material-ui表格排序不起作用reactjs
- javascript - JS 如何不断计算时间
- autoscaling - 微服务服务-Autoscaling