【问题标题】:this.refs no longer available in componentDidMount?this.refs 在 componentDidMount 中不再可用?
【发布时间】:2015-05-12 17:23:42
【问题描述】:

来自 React v0.13 的更新日志:

" ref 解析顺序略有变化,因此在调用 componentDidMount 方法后,组件的 ref 立即可用;只有当您的组件在您的 componentDidMount 中调用父组件的回调时,才能观察到此更改,这是一种反模式,无论如何都应该避免"

那么,有没有更好的方法在 DOM 挂载后访问this.refs?我不喜欢使用setTimeout(),但这是我看到的在特定 DOM 挂载后工作的最佳方法。有没有我缺少的替代方法?或者,将onLoad 方法直接附加到组件的最佳方式是什么?

【问题讨论】:

    标签: reactjs


    【解决方案1】:

    也许你读得太多了。

    我的解释是子组件的所有引用都在componentDidMount 中可用。

    变化在于它们在子组件自己的componentDidMount 完成之前不可用(这发生在父组件之前)。只有当您从孩子的componentDidMount 内部调用一些回调,并且该代码尝试立即使用ref 时,您才会受到影响。这似乎是一种极端情况,正如他们所说,是一种反模式。

    因此“正常使用”不应受到此更改的影响。

    请尝试并报告。

    【讨论】:

    • 谢谢,蒂洛。这是我的错误。我未能更新反应库。
    猜你喜欢
    • 1970-01-01
    • 2019-08-04
    • 2019-02-02
    • 2020-04-15
    • 1970-01-01
    • 2018-05-04
    • 2016-09-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多