首页 > 解决方案 > React Hook useEffect 和 useCallback 无限循环,函数作为依赖项(react-table v7)

问题描述

我无法理解这个 React Hooks 示例。我有一个sortBy通过组件的道具调用。基于此,我想更新 (react-table v7: ^7.0.0-rc.10) 表排序。它正在调用toggleSortBy(来自图书馆)。当它运行时,它以无限循环结束。

当我取出时toggleSortBy,一切正常,但出现错误:

React Hook useCallback has a missing dependency: 'toggleSortBy'. Either include it or remove the dependency array react-hooks/exhaustive-deps.

我已经碰到过几次了,所以我想我不明白一些基本的东西。

  //const sortBy = [{
  // id: 'test',
  // desc: true
  //}]

  const doSort = useCallback(() => {
    toggleSortBy(sortBy[0].id, sortBy[0].desc, false);
  }, [sortBy, toggleSortBy]);

  useEffect(() => {
    if(sortBy.length) {
      doSort();
    }
  }, [sortBy, doSort]);

如何让这段代码在没有无限循环或产生 lint 错误的情况下工作?

标签: javascriptreactjsreact-hooksreact-table

解决方案


推荐阅读