如何在Swift Composable Architecture 1.0中实现可用的ConfirmationDialog
TCA 1.0 中 ConfirmationDialog 的新语法
在Composable Architecture(TCA)1.0版本后,confirmationDialog的API发生了变更,原有的基于store.scope的写法不再适用,新语法更简洁且无需手动处理作用域与单独的关闭动作:
新语法示例
假设你的State中仍保留可选的deleteConfirmationDialog: ConfirmationDialogState<AuthAction>?属性,对应的可编译代码为:
.confirmationDialog( unwrapping: \.deleteConfirmationDialog, action: { .authAction($0) } )
核心变化说明
- 直接通过
unwrapping:参数绑定State中的可选ConfirmationDialogState属性,无需手动调用store.scope - 弹窗的所有动作(包括内置的关闭动作)通过
action:闭包映射到你的Feature Action中,不再需要单独指定dismiss:参数 - 当
deleteConfirmationDialog被赋值为非nil时弹窗自动显示;弹窗关闭时,TCA会自动将该属性置为nil,无需手动编写状态更新逻辑
内容的提问来源于stack exchange,提问作者Small Talk
相关产品推荐
相关产品推荐

