【发布时间】:2021-10-03 02:45:38
【问题描述】:
我有一个带有setInterval 在useEffect 内的功能组件。
但loadData 中的值始终等于初始一 (0),尽管渲染正确。
如何在setInterval 调用的loadData 中获取当前的value?
...
const [value, setValue] = useState(0);
const [service, setService] = useState();
useEffect(() => {
setService(new ApiService());
}, [])
useEffect(
() => {
const timerId = setInterval(loadData, 1000 * 5);
return () => clearInterval(timerId);
},
[service]
)
async function loadData() {
const result = await service.getData();
console.log("old value: ", value); // "value" is always 0 (initial)
setValue(result.data.value);
}
...
【问题讨论】:
标签: reactjs react-hooks setinterval