我遇到了一个关于Reaction裁判的问题,这有点令人困惑.我有一个更高级别的组件(HOC),它基于props 动态生成子组件,我正在try 使用Ref来访问这些子组件.然而,裁判似乎没有得到适当的设置,我不知道为什么.
以下是我的代码的简化示例:
import React, { useRef, useEffect } from 'react';
const DynamicComponent = ({ name }) => {
// Some component logic here...
return <div>{name}</div>;
};
const HOC = ({ dynamicComponentProps }) => {
const dynamicRef = useRef();
useEffect(() => {
console.log(dynamicRef.current); // This logs 'null'
// Some other logic with dynamicRef.current...
}, [dynamicRef.current]);
const renderDynamicComponent = () => {
return dynamicComponentProps.map((props, index) => (
<DynamicComponent ref={dynamicRef} key={index} {...props} />
));
};
return <div>{renderDynamicComponent()}</div>;
};
const App = () => {
const dynamicComponentProps = [
{ name: 'Component A' },
{ name: 'Component B' },
{ name: 'Component C' },
];
return <HOC dynamicComponentProps={dynamicComponentProps} />;
};
在HOC
内部的useEffect
块中,dynamicRef.current
始终为null
,即使组件已渲染.我是不是遗漏了动态生成组件中的引用的某些方面,或者有没有更好的方法来实现我想要做的事情?
What I Tried:个
我try 在基于props 动态生成子组件的高阶组件(HOC)中使用Reaction Ref.我在HOC中创建了一个ref(dynamicRef
),并将其分配给每个动态生成的子组件.
What I Expected:个
我希望当我访问useEffect
块中的dynamicRef.current
时,它将指向最后一个动态生成的子组件,从而允许我执行操作或访问该组件的属性.
What Actually Resulted:
令人惊讶的是,当我记录dynamicRef.current
时,它总是显示null
,这表明裁判没有正确设置.尽管呈现了组件,但引用并没有指向任何组件.