javascript - 通过 props 用 React.js 交换 HTML 元素
问题描述
上下文:React 新手。想要构建一个多功能的<Wrapper />
组件。
我的问题是:“如何根据道具的值更改呈现的 HTML 元素?”
我的组件如下所示:
const Wrapper = ({ elem = 'div', name, children }) => {
const statement = `<${elem} className='oc-${name}-wrapper'>{children}</${elem}>`;
return statement;
};
这个准解决方案只是渲染出字符串。我该如何编写上述内容,以便可以使用具有可互换元素的组件,如以下两个示例,以便分别实现 和<main>
?<div>
当前变量已成功注入,但代码呈现为字符串,而不是执行。
// usage
<Wrapper elem="main" name="splash"><p>foo</p></Wrapper>
// output
<main class="oc-splash-wrapper"><p>foo</p></main>
// usage
<Wrapper name="content"><p>bar</p></Wrapper>
// output
<div class="oc-content-wrapper"><p>bar</p></div>
先感谢您!
解决方案
HTML asString
将无法正确呈现。
尝试更改Wrapper
功能:
const Wrapper = ({ elem = 'div', name, children }) => {
const statement = `<${elem} className='oc-${name}-wrapper'>{children}</${elem}>`;
return <div dangerouslySetInnerHTML={{ __html: statement }} />;
};
推荐阅读
- apollo-server - 是否可以为 Apollo Server 附带的 GraphQL Playground 定义 HTTP 标头?
- angular - 在编辑模式下打开表单时,Angular Reactive Form 发生变化
- python - 我需要使用 python 有效地分批将数据从 csv 文件导入到 postgresql 表中
- ksqldb - Windows下如何安装mongoDb连接器?
- python - 如何 conda 打包基础环境
- c++11 - 我有一组用户定义的数据类型,并在结构中使用该组变量。我想比较 set 的值。我将如何做到这一点
- java - 更新到 64 位 java 后长到整数转换的溢出警告
- javascript - 添加新输入字段不会更新现有输入字段的值
- amazon-web-services - AWS SAM 部署配置问题
- python - 使用pyqt5设计器制作指定表