🌟
TCA v1.4での変更点
-
@Reducer
マクロ爆誕- CaseKeyPath使うようになった
-
store.scope(state: \.$alert, action: \.alert)
ができる
-
- CaseKeyPath使うようになった
- テストコードでreceiveのときに.successを比較しないようになった
- ActionにEqutableが必要なくなった
- TaskResultが必要なくなった
- ActionにEqutableが必要なくなった
- IdentifiedActionOfが爆誕
-
case row(id: State.ID, action: Action)
と書く必要がなくなった
-
このバージョンの主にやりたいこと
- CaseKeyPathを使うことでStateとActionを併記する際にKeyPathスタイルに統一したい
- もともとStateはKeyPath、ActionはCasePathとなっており微妙にスタイルが違っていた
- CaseKeyPathを使うことでスタイルを統一できるしCasePathの黒魔術的な解決をしなくても良くなる(おそらく実行時パフォーマンスを懸念している)
テストコードでreceiveのときに.successを比較しないようになった
そもそもEqutableにするのはテストのためだった。
ActionをEqutableにしなくて良くなったことでTaskResultも必要がなくなりResultをそのまま使っても良くなった。
さらにEqutableでないことでVoidでも問題がなくなった。つまりcase receive(Result<Void, NSError>)
でもいい。
Discussion