我有一些需要在内部运行的状态修改任务componentDidMount
以及在renderS
方法中定义的按钮单击处理程序内部。任务有很多通用代码,所以我决定将它们加入一个类,接收范围并应用必要的操作。
问题是:renderS
我可以访问的内部方法和我拥有ComponentScopeU[...]
的componentDidMount
内部方法ComponentScopeM[...]
我发现要访问.props
我需要验证我的范围是否有 supertrait ComponentScope_P[...]
,访问.state
我的范围应该有 supertraitComponentScope_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) {...}
它正在工作,但我想知道如何简化它,即如何在内部renderS
和componentDidMount
通过公共代码访问 props\state?