メソッドcomponentDidMount
で定義されたボタンクリックハンドラーの内部でも実行する必要がある状態変更タスクがいくつかあります。renderS
タスクには多くの共通コードがあるため、スコープを受け取り、必要なアクションを適用する 1 つのクラス内にそれらを結合することにしました。
問題は次のとおりです:renderS
メソッド内で私はアクセスできComponentScopeU[...]
、内部でcomponentDidMount
私は持っていますComponentScopeM[...]
アクセス.props
するにはスコープにスーパートレイトがあることを確認する必要があり、スコープにアクセスするにはスーパートレイトが必要であり、暗黙ComponentScope_P[...]
的にパスする必要があることを確認しました。.state
ComponentScope_S[...]
.modState
CompStateAccess[...]
だから現在、私はこのようなコードを持っています
case class State(...)
type ScopePS = ComponentScope_P[Int] with ComponentScope_S[State]
type StateAccess[C] = CompStateAccess[C, State]
implicit class MyActions[T <: ScopePS : StateAccess](scope: T) {...}
それは機能していますが、これをどのように単純化できるのだろうか、つまり、props\state に内部renderS
およびcomponentDidMount
共通コードを介してアクセスするにはどうすればよいでしょうか?