使用动态生成的列重新安装/渲染列更改的React组件

时间:2019-04-28 06:26:08

标签: reactjs react-hooks

在这里,您当前对代码箱的迷恋。我根据屏幕宽度动态生成列,以分布组件数组。可以,但是当我调整屏幕大小以更改列数时,组件会正确重新排序,但是所有更改列的组件都会重新呈现。

调整大小屏幕,您将在控制台日志中看到重新安装了更改列的组件(很有意义)。我想知道是否有避免这种情况的方法(目前,恐怕没有这种方法)。

在多次使用useRef,useMemo等尝试之后(其中一些可能很疯狂,但是我不得不尝试),到目前为止,我的结论是,使用这种方法,必须从一列中删除该组件并将其添加到其他,无论如何都将被重新呈现。

有什么想法吗?

https://codesandbox.io/s/28n127vnj

1 个答案:

答案 0 :(得分:0)

好吧,最终,Portal和refs组合起来进行了营救并成功了。

最后,这是一个长期的问题,通过做一些研究,我发现了这个Facebook问题...

https://github.com/facebook/react/issues/13044

...其中vkatushenok为该问题提供了一个很好的解决方案。采纳这个想法并将其稍作修改,让我找到解决之道。

如果您有这种情况或类似情况,这里有我的解决方法...

https://codesandbox.io/s/kwr0vn6x15