技术

·

1 min read

·

- Views

React相关问题记录

Copied

React相关问题记录

1.

Q: 为什么循环渲染时加了Key还是报错?

代码

A:

之前对于<></> 的理解是空标签就忽略了它其实也算是个列表中的child元素, 所以解决方法也很简单

如果列表渲染时循环体内有多个子元素,那么必然需要使用<></> 将其组合起来。但是<></> 无法加Key 。 因此需要替换为<Fragment key={xxx}></Fragment>

实际上<></>就是<Fragment></Fragment>的简写

2.

Q: 在列表渲染时,如何给每一项元素使用Ref

在做Tab组件时,需要给每个TabPanel加上悬浮时显示关闭按钮的功能。思路大概是使用ahooks中的useHover来做。但是useHover需要传递ref来绑定。

这样写确实没问题,但是当我进行Add或者Delete 父组件改变了tabs 后就报错了。

A:

解决方法将循环体继续封装成组件,让组件自己管理ref