Redux 符合 SwiftUI 2.0 的 Bindable
问题:Redux 符合 SwiftUI 2.0 的 Bindable 我已经在我的 SwiftUI 项目中成功地实现了 Redux,但是在正确处理绑定方面遇到了困难。我想使用 SwiftUI 的绑定功能,同时将信息存储在 Redux 状态中。 正如您所看到的,这种情况自相矛盾,因为状态不能被双向约束。这是我当前的代码 @State var tab: Tab = .tab1 TabView(sele
·
问题:Redux 符合 SwiftUI 2.0 的 Bindable
我已经在我的 SwiftUI 项目中成功地实现了 Redux,但是在正确处理绑定方面遇到了困难。我想使用 SwiftUI 的绑定功能,同时将信息存储在 Redux 状态中。
正如您所看到的,这种情况自相矛盾,因为状态不能被双向约束。这是我当前的代码
@State var tab: Tab = .tab1
TabView(selection: $tab) { ... }
理想情况下,如果可能的话,它应该像这样舒适地使用。我也对其他想法持开放态度,这正是我最初想出的——它远非完美。
@State var store = ReduxStore(...)
TabView(selection: $store.state.tab) { ... }
解答
我想出了如何处理这种情况。对我来说,解决方案是一个像这样的绑定:
let tabBinding = Binding<Tab> (
get: { self.store.state.currentTab }, // return the value from the state
set: { self.store.dispatch(action: NavigationAction.updateTab(tab: $0)) } // send the action here
)
尽管这可能可以被美化,但它可以工作,非常简单,并且解决了在 Redux 中使用 Bindings 的问题。
更多推荐
已为社区贡献29255条内容
所有评论(0)