Эврика! SwiftUI хочет единственный источник правды.
То, что я не учел в своих исходных фрагментах кода, это то, что эта структура находится внутри приложения с вкладками.
Чтобы исправить это, мне нужно было определить @State var text: String = ""
в структуре, которая создает TabbedView верхнего уровня, а затем использовать $ Binding в SearchRoot.
Я не уверен, работает ли он так, как задумано, или это проблема с бета-1, но сейчас это так.
struct ContentView : View {
@State private var selection = 0
@State private var text: String = "searching ex"
var body: some View {
TabbedView(selection: $selection){
ShoppingListRoot().body.tabItemLabel(Text("Cart")).tag(0)
SearchRoot(text: $text).body.tabItemLabel(Text("Search")).tag(1)
StoreRoot().body.tabItemLabel(Text("Store")).tag(2)
BudgetRoot().body
.tabItemLabel(Text("Budget"))
.tag(3)
SettingsRoot().body
.tabItemLabel(Text("Settings"))
.tag(4)
}
}
}