🌟
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