Javascript useRef未填充arrayLength

Javascript useRef未填充arrayLength,javascript,reactjs,typescript,react-hooks,use-ref,Javascript,Reactjs,Typescript,React Hooks,Use Ref,我在TypeScript中有下面的代码,我试图在其中使用useRef并分配数组长度 const listRef = useRef(Array.from({ length: message.length }, a => React.createRef())); 但它从来没有被数组长度填充过,而是以 ListRef 对象 当前:[] 代码中有什么错误?为什么它从不接受数组值?根据您告诉我们的,唯一的解释是消息。在第一次调用useRef时,长度是0。此后对useRef的后续调用(例如,当组件重

我在TypeScript中有下面的代码,我试图在其中使用
useRef
并分配数组长度

const listRef = useRef(Array.from({ length: message.length }, a => React.createRef()));
但它从来没有被数组长度填充过,而是以

ListRef 对象 当前:[]


代码中有什么错误?为什么它从不接受数组值?

根据您告诉我们的,唯一的解释是
消息。在第一次调用
useRef
时,长度
0
。此后对
useRef
的后续调用(例如,当组件重新渲染时)将忽略传入的初始值,而不是返回第一次调用
useRef
创建的ref

下面是一个简单的例子,说明了这一点:

const{useRef,useState,useffect}=React;
函数示例({message}){
log(`Component rendered,message.length=${message.length}`);
const listRef=useRef(Array.from({length:message.length},a=>React.createRef());
log(`Component rendered,listRef.current.length=${listRef.current&&listRef.current.length}`);
返回x;
}
函数父函数(){
const[message,setMessage]=useState{
设置超时(()=>{
setMessage([1,2,3]);
}, 800);
}, []);
返回;
}
render(,document.getElementById(“根”))


我以前的回答不起作用吗
const listRef=UseMoom(()=>messages.map(()=>React.createRef(),[])
-@SILENT,不,它的给定
TypeError:无法读取未定义的属性“current”
@SILENT getting error,因为
需要0个参数,但得到了
1“我的坏消息”。不是打字机专家。@Lara-这取决于你想完成什么…?@Lara-我对你想做的事有点怀疑,但是。。。