首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >结合使用react-table和react-modal

结合使用react-table和react-modal
EN

Stack Overflow用户
提问于 2020-07-01 06:07:12
回答 1查看 252关注 0票数 0

我不明白为什么我不能在react-modalreact-aria-modal中使用react-table。当我尝试显示模式时,显示react-table的组件不断地重新渲染,最终由于Maximum update depth错误而崩溃。

我已经创建了一个CodeSandbox来说明这个问题。有没有办法在同一棵树中同时使用这两个组件?

由于某种原因,CodeSandbox不会显示此错误,但在开发过程中,我也会遇到此错误(这些堆栈跟踪似乎来自react-table):

代码语言:javascript
复制
(anonymous function)
/src/hooks/useColumnVisibility.js:207
  204 | 
  205 | useMountedLayoutEffect(() => {
  206 |   if (getAutoResetHiddenColumns()) {
> 207 |     dispatch({ type: actions.resetHiddenColumns })
      | ^  208 |   }
  209 | }, [dispatch, columns])
  210 | 

(anonymous function)
/src/publicUtils.js:153
  150 | 
  151 | safeUseLayoutEffect(() => {
  152 |   if (mountedRef.current) {
> 153 |     fn()
      | ^  154 |   }
  155 |   mountedRef.current = true
  156 |   // eslint-disable-next-line
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-01 06:45:51

您需要记住这些选项,其中react-table提到了in some of its documentation。这些选项包括您当前没有记忆的列,因此它在每次呈现时都会获得新的列(因为columns是在与数组和[] !== []相同的范围内定义的),然后重新呈现。

修复它的最快方法是将columns数据包装在React.useMemo中;

代码语言:javascript
复制
const columns = React.useMemo(() =>[
    {
      Header: "Example",
      Cell: props => <span>no click</span>
    }
  ], []);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62666841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档