├── Page
│ ├── WrappedButton
│ │ └── Button
│ └── WrappedForm
│ └── Form
如上图所示的组件结构,有什么优雅的方法,使得在Button
组件中控制Form
组件的validateFields
方法。
我现在能想到的方法是:
- 在
Page
层创建onButtonClick
方法,利用refs
拿到Form
组件实例,以回调方式传给Button
组件。可是如果嵌套更多层,利用refs
拿实例并不顺利。 - 在
redux store
中创建一个validateCount
变量,在Button
组件中改变它,Form
组件作出相应动作。可是为了通信强行创建了一个没有意义的变量,此场景并不需要数据的共享,只是单向的Button
控制Form
。
请问大家有什么更好的做法应对此场景
可以 使用useContext