reactjs - 我如何传递一个格式化的 React 组件道具?
问题描述
有人可以告诉我解决这个问题的方法吗?提前致谢!
我有一个接收字符串值作为道具的组件。
我想做的是:
将格式化的字符串传递给道具。
前任:
<Component
String ={
`<p>Some text...</p>
<p>Another text</p>`
}
/>
我试图将值传递给 const,例如:
const value = `<p>Some text...</p>
<p>Another text</p>`
<Component String={value} />
输出将是相同的:
<p>Some text...</p> <p>Another text</p>
无需格式化 HTML 标签。
解决方案
我的理解是您希望将包含 HTML 标记的字符串传递给组件,并让该组件按原样打印字符串,而不将其格式化为 HTML。您所做的已经是正确的,只需渲染它就可以了:
const Component = ({String}) => {
return (
<div>{String}</div>
)
}
export default function App() {
const value = `<p>Some text...</p>
<p>Another text</p>`
return (
<div className="App">
<Component String={value} />
</div>
);
}
如果您真的想将其格式化为 HTML,那么这就是您所需要的:
const Component = ({ String }) => {
return <div>{String}</div>;
};
const Component1 = ({ String }) => {
return <div dangerouslySetInnerHTML={{ __html: String }} />;
};
export default function App() {
const value = `<p>Some text...</p>
<p>Another text</p>`;
return (
<div className="App">
<Component String={value} />
<br />
<Component1 String={value} />
</div>
);
}
Component1
将为您格式化。
沙盒:https ://codesandbox.io/s/unruffled-currying-v9srx?file=/src/App.js
推荐阅读
- oracle - 从查询结果创建新表
- amazon-web-services - 如何限制默认 AWS VPC 入口以阻止所有流量
- redis - 当 Redis 流数据达到内存限制时会发生什么?
- javascript - Nuxt 添加资产 javascript 文件
- mysql - 我只将一条记录插入到 mysql 数据库中
- terraform - Terraform zone : [DEPRECATED] 改用位置,但位置会导致另一个错误。有什么解决办法吗?
- ios - 应用程序终止时的 Swift IOS 启动通知
- android - 是否可以在 Flutter 中完全处理音量增大/减小产生的事件?
- python - 适用于除最后一行之外的所有行的应用函数
- r - 在 R 中绘制矩阵的比例