SwiftUI 警报设置显示条件为真,其按钮操作关闭不再显示警报

SwiftUI Alert setting presentation condition true in it's button action closure not showing the alert again

提问人:user3745635 提问时间:11/18/2023 更新时间:11/18/2023 访问量:17

问:

所以我想做的是,我有一个 api 调用,如果它失败,我会显示一个带有消息、按钮和按钮的警报。OKRetry

一切正常,但是当我重试时,如果它再次失败,它不会再次显示警报,并且即使我直接设置属性,我也会通过我自己在闭包中的硬代码将其作为 true 传递。isPresented

这是代码。

.alert(isPresented: $viewModel.isErrorMessageVisible) {
        Alert(
          title: Text(StringsProvider.error), message: Text(viewModel.errorMessage),
          primaryButton: .default(Text(StringsProvider.ok), action: {
            // do nothing
          }),
          secondaryButton: .default(Text(StringsProvider.retry), action: {
            viewModel.isErrorMessageVisible = true
          }))
      }
iOS SwiftUI 属性包装器 swiftui-alert

评论

0赞 Paulw11 11/18/2023
你的代码没有意义。您正在尝试在警报上的按钮中设置警报显示绑定;一旦执行按钮操作闭合,SwiftUI 会将其设置回 .truefalse
0赞 user3745635 11/18/2023
@Paulw11,我同意你的看法,SwiftUI 会将其设置为 false。看到在调试器中也完成了。但是,如果我将其设置为真,那么它不应该再次可见吗?在调试日志中,它首先由 SiwfUI 设置,然后由操作中的代码闭包设置。我以这种方式呈现它,使其看起来可读,并使调试变得容易。实际上,API被调用,然后应该显示错误。falsetrue

答: 暂无答案