问题描述
我正在尝试使用 SwiftUI 制作一个 UI,该 UI 列出了一系列可以是不同类型并且每个都可以更新的内容。我想使用 Picker 在 UI 中设置类型,并且我还希望在以其他方式修改项目时更新视图(例如,从 UI 的另一部分或通过网络)。>
我喜欢“redux”风格的设置,我不想抛弃它。
这是一个简单的例子,显示了两个项目,每个项目都有一个“随机化”按钮,可以随机更改项目,还有一个选择器,可以让您选择新的项目类型。后者按预期工作:Picker
更改 @State var
,商店更新等。“随机化”按钮更新商店和 let
属性标签,但 {{1 }} 和 @State
不更新。
我希望得到一些关于让它按照我想要的方式工作的好方法的建议。
Picker
解决方法
尝试更改此行:
@State var localLabel: ItemState
到
@Binding var localLabel: ItemState
并将其传递到您的 ItemView
init 中:
ItemView(
index: index,label: store.state[index],localLabel: $store.state[index],dispatch: store.reduce
)