Поскольку я не могу удалить этот вопрос, я сам выложу здесь ответ.
Проблема, с которой я столкнулся, заключалась в том, что я пытался преобразовать @State
в Publisher
, а для onReceive
требуетсяPublisher
(как указано @jfuellert). В последующем вопросе (который я удалил) пользователь @matt указал мне на @ObservedObject
для моего варианта использования.
Один простой способ сделать то, что я пытался сделать с @State
, - это воспользоватьсятого факта, что каждый раз, когда состояние var изменяется, тело будет переоцениваться:
struct ContentView: View {
@State var name: String = ""
var body: some View {
print("hey \(name)")
return List {
Text(String(describing: name))
TextField("First Name", text: $name)
}
}
}