Warning: Function components cannot be given refs. Attempts to access this ref will fail. Did you mean to use React.forwardRef()?
未关闭
还没有人认领这个 Issue。
- 主要语言
- JavaScript
- 星标
- 11.8k
- 派生
- 7.9k
- 平均合并
- 1 天 11 小时
- 30 天内合并 PR
- 11
描述
I have the folowing part of code:
private rootRef = React.createRef<HTMLDivElement>();
const target = (
<div>
<Icon design='accepted' size='xl' />
</div>
);
return (
<React.Fragment>
{React.cloneElement(target, {
ref: this.rootRef,
onMouseOver: this.handleMouseOver,
onMouseLeave: this.handleMouseLeave,
})}
{open && this.renderTooltip()}
</React.Fragment>
);
When target with div element (or any other instead of div) everything is ok, but when target is:
const target = (
<Icon design='accepted' size='xl' />
);
I get error: Warning: Function components cannot be given refs. Attempts to access this ref will fail. Did you mean to use React.forwardRef()?
Icon is a span element inside of which is svg.
I will be very appreciate for any help.
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
调研方向
未指定任何仓库文件、测试或文档页面。首先检查复现中展示的 React.cloneElement 和 ref 行为,然后确定现有的 react.dev 页面是否需要澄清。完成这项工作需要一个范围明确的文档变更,以及一种验证更新后指南的方法。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- javascript, react
- 领域
- documentation
- Issue 类型
- 文档
- 难度
- 5/5
- 预计耗时
- 一周以上
- 活跃度
- 停滞
- 描述清晰度
- 需要澄清
- 新手友好度
- 20/100