@Binding不能用作属性

时间:2019-10-07 18:10:54

标签: swiftui

我正在关注有关SwiftUI的教程,但遇到了问题

以下是我将一个布尔值从一个结构视图绑定到另一个结构的努力

import SwiftUI
import Foundation
struct BindingTwo: View {

    let episod = Episode(name: "MacBreak Weekly", track: "WWDC 2019")
    @State private var isPlaying = false
    var body: some View {

        VStack{

            Text(self.episod.name).font(.title).foregroundColor(self.isPlaying ? Color.green : Color.black)

        Text(self.episod.track).foregroundColor(.secondary)

            PlayButton(isPlaying: isPlaying)
        }

    }
}

struct PlayButton : View {
    *@Binding var isPlaying : Bool* this line is generating the error
    var body : some View {
        Button(action: {self.isPlaying.toggle()}){
            Text("Play")
        }
        .foregroundColor(Color.white)
        .background(Color.black)
        .padding(12)
    }
}

,但是@Binding行不断出现以下错误:“结构'Binding'不能用作属性” 据我所知与本教程相同,我无法弄清楚我错过了什么,有人以前见过吗?

3 个答案:

答案 0 :(得分:0)

尽管我没有收到您提到的错误。但是您的代码运行良好,只需更改此内容即可:

PlayButton(isPlaying: self.$isPlaying)

答案 1 :(得分:0)

我没有看到此特定错误。 您正在使用MacOS Catalina 10.15+版本吗? SwiftUI仅在Catalina中起作用。

答案 2 :(得分:0)

只需卸载Xcode并重新安装,@ Binding错误就消失了,尽管我的模拟器和canvas的运行速度明显变慢,但我认为新版本可能只是间歇性的问题,也许不久之后速度就会恢复正常