1

我有一些需要在内部运行的状态修改任务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) {...}

它正在工作,但我想知道如何简化它,即如何在内部renderScomponentDidMount通过公共代码访问 props\state?

4

0 回答 0