Error: Initializer 'init(_:)' requires that 'Binding<String>' conform to 'StringProtocol' : <p>I am getting the above error and couldn't figure out how to solve it. I have an array of objects that contain a boolean value, and need to show a toggle for each of these boolean.</p>

<p>Below is the code.</p>

<pre><code>class Item: Identifiable {
    var id: String
    var label: String
    var isOn: Bool
}

class Service: ObservableObject {
    var didChange = PassthroughSubject&lt;Void, Never&gt;()

    var items: [Item] {
        didSet {
            didChange.send(())
        }
    }
}

struct MyView: View {
    @ObservedObject var service: Service

    var body: some View {
        List {
            ForEach(service.items, id: \.self) { (item: Binding&lt;Item&gt;) in
                Section(header: Text(item.label)) {  // Error: Initializer 'init(_:)' requires that 'Binding&lt;String&gt;' conform to 'StringProtocol'
                    Toggle(isOn: item.isOn) {
                        Text("isOn")
                    }
                }
            }
        }
        .listStyle(GroupedListStyle())
    }
}
</code></pre>
