gpt4 book ai didi

reactjs - 在 react 中使用引用

转载 作者:行者123 更新时间:2023-12-03 14:10:08 25 4
gpt4 key购买 nike

React 文档包含以下警告:

Never access refs inside of any component's render method - or while any component's render method is even running anywhere in the call stack.

为什么?我的问题是,我正在编写一个组件,该组件以取决于子级大小的方式布置其子级。也就是说,我需要测量 DOM 节点,因此我需要访问每个子节点,这是我计划在渲染中通过 refs 来完成的。这有什么问题吗?当然,我需要考虑到一些子项可能尚不存在于引用中(在第一次渲染中,不存在子项)。

顺便说一句,我的渲染似乎有效。

最佳答案

免责声明:我不是 React 核心开发人员,但我在一个大型项目中广泛使用它。

TL;DR:最安全的地方是使用生命周期方法,在 .render() 方法中,组件仍然只是要执行的操作的声明性描述。

因为您在 .render() 方法中构造的内容不是要渲染的组件,而是您希望 React 构造的内容的描述为你。该构建稍后进行(那时所有的优化都会出现)。同时,您返回到React.createClass的对象将被新对象替换。想象一下,就像您正在向 React 发送一封信(发送到 .createClass() 的对象),React 用一个包(组件)进行响应。如果您需要对将要创建的子组件执行某些操作,请查看 lifecycle methods.refs 应在 .componentDidMount() 时填充。

关于reactjs - 在 react 中使用引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26145548/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com