在 ReactJS 中有没有办法让组件找出它的父级是谁?
编辑 1:不管这样做有什么好处,有没有办法?
我还没有找到一种 React 方法来做到这一点 - 从我所见,这个想法是将回调从父级传递给子级,而子级调用回调 - 不知道回调实际上是在父母。
我试过设置一个“所有者”属性,这个想法似乎可行,但我想知道最好的方法是什么?
例如
<Parent>
<Child owner={this}/>
</Parent>
然后在子组件中,我可以做owner.method
,而且似乎工作正常。我知道这不是真正的父子关系,但这是我在测试中发现的最接近的关系。
有些人可能会说回调是一种更简洁的方法,但在我看来,某些事物(例如 RadioButtonGroup 和 RadioButton)的父/子关系似乎很自然,并且会从了解这种关系中受益。
编辑2:所以这是不可能的?
我不喜欢它不受支持的想法是 HTML 可以用零 javascript 标记 - 它暗示了默认功能 - 某些元素需要有父元素 - 它们被定义为其他元素的子元素(例如 ul 和 li)。这在 JSX 中不会发生,因为如果元素之间存在交互 -必须有 javascript 事件将组件绑定在一起 - 每次使用它们时。设计人员不能简单地编写类似 HTML 的语法——必须有人介入并在其中放置一些 javascript 绑定——这会使维护变得更加困难。我认为这个想法对于覆盖默认行为是有意义的,但应该支持默认行为。默认情况下需要知道您的父母或您的所有者是谁。