javascript - 如何使用 React.createRef() 渲染重复元素
问题描述
在我下面的代码中,我想使用React.createRef()
. 因为从长远来看,我必须在帮助屏幕的对话框中呈现相同的元素。
那么如何在 DOM 中渲染它呢?
通过下面的代码,我可以获得div
元素的引用,但不能在 Dom 中呈现它。
export default class TestComponent extends React.Component {
state = {};
myRef;
constructor(props) {
super(props);
this.myRef = React.createRef();
}
render() {
return (
<React.Fragment>
<div ref={this.myRef}>
<h2>Hello World!!!</h2>
</div>
{this.myRef && <>{this.myRef.current}</>}
</React.Fragment>
);
}
}
编辑:
我必须将此引用传递给一个新组件(HelpScreenComponent
),它会将相同的元素与一些额外的 UI 一起呈现为对话框。
解决方案
我的问题是在叠加层上呈现重复的组件,以便首次使用的用户向他们显示帮助屏幕。
我没有得到确切的答案,而是通过仅渲染内部 Html 来解决我的问题。
在上面的代码中通过替换行
{this.myRef && <>{this.myRef.current}</>}
有了这个
{this.myRef.current && <div dangerouslySetInnerHTML={{__html: this.myRef.current.innerHTML}}/>}
推荐阅读
- javascript - 无法读取空值、正则表达式匹配组的属性“地图”
- ios - 如何结合这两个功能?
- .net - 用于在 Visual Studio 2019 中调试多个项目的配置文件
- python - Python - 如何在 UDP 数据报中设置 IPv6_HOPLIMIT
- nlp - 训练 Gensim Word2vec 模型的每个句子的最小字数
- kotlin - 如何在 Kotlin 中指定 ActionListener?
- ionic-framework - 离子文件插件:copyFile“NOT_FOUND_ERR”
- r - 为什么我无法在 Shiny (R) 中显示仪表板?
- python-3.x - 从混合数据类型列中提取所有整数行
- android - Materialio Appbar 向下滚动时不隐藏