SwiftUI技术咨询:如何实现仅在网络断开时显示Alert弹窗,网络正常时不返回提示
解决SwiftUI网络状态Alert优化问题
我来帮你调整这段代码,让它只在网络未连接时弹出提示,网络正常时不显示任何弹窗。咱们一步步来修改:
关键修改点
- 修正网络状态判断逻辑:原来的
.onAppear里条件写反了,需要把网络断开的判断和弹窗触发对应起来 - 简化Alert实现:移除成功提示的分支,只保留网络未连接时的弹窗内容
修改后的完整代码
.onAppear { viewModel.updateData(baseCode: viewModel.baseCode) // 只有网络未连接时,才触发弹窗 showingAlert = !monitor.isConnected } .alert(isPresented: $showingAlert) { // 只保留网络未连接时的提示弹窗 Alert( title: Text("Connect to Internet"), message: Text("Kindly Connect to internet to get the latest rates and use the application with accurate calculations"), dismissButton: .default(Text("Okay")) ) }
逻辑说明
- 在
.onAppear中,我们直接将showingAlert设置为!monitor.isConnected——也就是网络断开时为true,触发弹窗;网络正常时为false,不触发任何弹窗。 - 简化后的
.alert不再需要分支判断,因为showingAlert只有在网络断开时才会为true,所以只会展示网络未连接的提示内容,完全去掉了成功提示的逻辑。
内容的提问来源于stack exchange,提问作者Nursultan Yelemessov
相关产品推荐
相关产品推荐

