【发布时间】:2020-07-27 02:30:58
【问题描述】:
我的代码:
const MyComponent: React.FC = () => {
const ParentReference = useRef(null);
return(
<Parent className="d-flex flex-row" ref={ParentReference}>
<ChildComponent
className="mr-3"
target={ParentReference.current}
/>
<AnotherChild className="mr-3" />
</Nav>
)};
如上面的代码所示,我使用 useRef 钩子创建了一个引用并将其附加到我的 ParentComponent。 现在我通过 target prop 传递给 ChildComponent 并使用它在 child 内部进行一些 dom 操作。
问题: 对于组件的第一次渲染,我将 ParentReference 作为 null。 (如果我在更改 ParentReference 时强制重新渲染,它将更新并重新渲染整个组件,那么它将具有价值。)
如何在我的子组件中获取 ParentReference 以进行初始渲染?
【问题讨论】:
-
不,它没有。他们提到的问题完全不同,因为我的 ref 在传递给子组件之前已附加并初始化到父组件,所以我希望它具有价值。我可以使用 useEffect 钩子并在 ref 值更改时触发重新渲染,这将再次重新渲染组件。但我想在第一次渲染。
标签: reactjs react-hooks react-ref react-forwardref use-ref