【问题标题】:ReactJS: how to access all child components in parent component?ReactJS:如何访问父组件中的所有子组件?
【发布时间】:2014-10-28 14:06:48
【问题描述】:

假设我有comments 列表组件和comments 组件。我想实现将返回所有comments 组件的方法。我为每个comment 组件分配了相同的参考:

<comments>
 <comment ref="myComments" text="abc" />
 <comment ref="myComments" text="efg" />
</comments>

我以为我可以通过 this.refs.myComments 访问我的所有组件,但它不起作用 - 它只返回最后一个评论组件。

访问所有comment 组件的正确方法是什么?

【问题讨论】:

  • 你想在这里实现什么,真的吗?
  • 假设我有评论。我想找到这个评论的渲染组件。
  • 我会详细说明,通常不建议使用ref。通常这表明您拥有属于其他地方的状态,因此问题更像是“一旦有了孩子,您想对他们做什么?”
  • 仅供参考,this.props.children 返回描述符而不是实际安装的组件实例。因此,您不应该直接在这些孩子上调用方法,因为这是非常无状态的设计
  • 你不应该这样做,也不建议这样做:facebook.github.io/react/docs/more-about-refs.html

标签: children reactjs


【解决方案1】:

没有正确的方法来做到这一点。

您的视图是数据的表示,因此如果您想要所有 cmets 的文本,请查看数据。

如果要更新 cmets,请更新数据。

将数据拉出视图,或手动操作视图违背了反应的目的。

【讨论】:

    猜你喜欢
    • 2014-04-05
    • 1970-01-01
    • 2017-07-22
    • 1970-01-01
    • 2016-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-06
    相关资源
    最近更新 更多