【发布时间】:2021-06-09 07:25:50
【问题描述】:
谁能告诉我为什么 ref 在初始渲染时没有更新?
我正在有条件地在最后一项上设置 ref,如果我不将值设置为异步,它可以正常工作。
const [values, setValues] = useState<Array<Number>>([]);
const ref = useRef(null);
useEffect(() => {
console.log(ref.current);
}, [ref]);
useEffect(() => {
setTimeout(() => {
const newValues = Array(10)
.fill(0)
.map((item) => Math.random());
setValues(newValues);
}, 1000);
}, []);
return (
<div className="App">
{values.map((value, index) => {
const isLast = index === values.length - 1;
return (
<div key={value.toString()} {...(isLast && { ref: ref })}>
{value}
</div>
);
})}
</div>
);
【问题讨论】:
标签: reactjs asynchronous ref