max*_*jas 2 javascript reactjs react-hooks
我已经尝试过使用状态与 Javascript 和 React 相关的解决方案,但我无法使用 Hooks 来做到这一点。我想为我渲染的每个元素添加3 秒的延迟array.map
import React, { useState } from 'react';
const DelayMapHooks = () => {
const [array, setArray] = useState([1, 2, 3])
return (
<div>
{
array.map((elem, key) => {
// ADD DELAY HERE FOR EACH ELEMENT
return( <div>Number: {elem}</div> )
})
}
</div>
);
};
export default DelayMapHooks;
Run Code Online (Sandbox Code Playgroud)
我尝试在地图后立即添加等待/异步,await delay(3000)与函数一起使用
const 延迟 = ms => {return(new Promise(res => setTimeout(res, ms)))}
但它不起作用,显示错误: Objects is not valid as a React child (found: [object Promise])。感谢任何帮助。
小智 5
你不能像这样阻止渲染方法,渲染应该同步运行。不过,这可以通过 useEffect 来完成,您需要每个周期修改数组的状态。然后,React 将协调 DOM 并每秒渲染一个额外的元素。
useEffect(() => {
const interval = setInterval(() => {
// You'd want an exit condition here
setArray(arr => [...arr, arr.length + 1]);
}, 1000);
return () => clearInterval(interval);
}, []);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5784 次 |
| 最近记录: |