两个孙组件通信问题(React)

├── Page
│   ├── WrappedButton
│   │   └── Button
│   └── WrappedForm
│       └── Form

如上图所示的组件结构,有什么优雅的方法,使得在Button组件中控制Form组件的validateFields方法。

我现在能想到的方法是:

  1. Page层创建onButtonClick方法,利用refs拿到Form组件实例,以回调方式传给Button组件。可是如果嵌套更多层,利用refs拿实例并不顺利。
  2. redux store中创建一个validateCount变量,在Button组件中改变它,Form组件作出相应动作。可是为了通信强行创建了一个没有意义的变量,此场景并不需要数据的共享,只是单向的Button控制Form

请问大家有什么更好的做法应对此场景

阅读 1.3k
1 个回答

可以 使用useContext

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题