Now I have ListTabView
it is parent and want to show MakeCardView
by sheet.
I am using @PresentationState
for showing children View.
It works well, but the problems is children view' s all action intercept by parents view.
struct ListTabFeature: Reducer {
//MARK: State
struct State: Equatable {
@PresentationState var addNewCard: MakeCardFeature.State?
}
//MARK: Action
enum Action: Equatable {
case tabMakeCardButton
case addNewCard(PresentationAction<MakeCardFeature.Action>)
}
//MARK: Reducer
func reduce(into state: inout State, action: Action) -> Effect<Action> {
switch action {
case .tabMakeCardButton:
print(" make card btn ")
state.addNewCard = MakeCardFeature.State()
return .none
case .addNewCard(.dismiss):
print(" dismiss")
state.addNewCard = nil
return .none
case .addNewCard(.presented(.tabCancelButton)):
print(" cancel tabed")
state.addNewCard = nil
return .none
default:
print(" default")
return .none
}
}
}
.sheet(store: self.store.scope(state: \.$addNewCard, action: ListTabFeature.Action.addNewCard)) { store in
MakeCardView(store: store)
}
when I action tab children view's button, it keep log
default
this is my first project to using TCA! please help!