按钮文本无法使用@state从其自身的操作中更新

时间:2020-10-28 15:52:22

标签: swift swiftui

我对如何根据状态正确更新视图按钮颜色感到困惑。如果我没记错的话,当用户授予相机访问权限时,self.cameraOKtrue,但是按钮的颜色不会改变。我需要再次点击按钮以查看颜色变化。为什么会发生这种情况?

此外,我还建议采用其他有关质量标准的建议,因为我还不熟悉。

代码如下:

    @State var cameraOK: Bool = false
    @State var photosOK: Bool = false
    
    var body: some View {
        VStack(alignment: .leading) {
            ...
            Button(action: {
                if permissions.giveCameraAccess() {
                    self.cameraOK = true
                }
            })  {
                Text("Enable access to your camera")
                    .font(Font.custom("Inter", size: 16))
                    .foregroundColor(self.cameraOK ? Color(red: 0, green: 1, blue: 0.2) : Color(red: 1, green: 0.68, blue: 0.2) )
                    .fontWeight(.regular)

0 个答案:

没有答案