使用useCallback无限循环以函数作为依赖项来响应Hook useEffect(react-table v7)

时间:2019-12-18 13:18:16

标签: javascript reactjs react-hooks react-table

我无法为这个React Hooks示例所迷。我有一个道具呼叫sortBy,该呼叫到达了一个组件。基于此,我想更新(反应表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]);

如何使此代码在没有无限循环或不产生棉绒错误的情况下工作?

0 个答案:

没有答案