繁体   English   中英

在 useCallback 中更新状态 - React JS

[英]Updating state inside useCallback - React JS

如何重构此代码以允许在useCallback函数内进行状态更新?

这是首先执行的内容:

useEffect(() => {
    getData();
}, [getData]); // errors if getData is left (missing dependency error)

getData函数中,我将一个状态变量 ( lastDoc getSomething()作为参数传递给getSomething() 它存储用于分页的最后一个文档/数据库行。

const [lastDoc, setLastDoc] = useState(null);

const getData = useCallback(async() => {
    const data = await getSomething(lastDoc);
    setLastDoc(data.lastDoc); // useSate function
}, [getSomething, lastDoc]);

目前,这只会导致无限循环,一旦setLastDoc更新lastDoc变量,就会重新呈现getData函数,因为getDatalastDoc作为依赖项。 如果我删除lastDoc依赖项,我会收到缺少依赖项错误,我认为这是一个重要的要听的错误。

我认为空检查可能就足够了。

useEffect(() => {
    if(lastDoc === null){
        getData();
    }
}, [getData, lastDoc]);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM