javascript - React 使用预先确定的组件在字符串上添加 HTML 标记(替代 dangerouslySetInnerHTML )
问题描述
我不想使用危险的SetInnerHTML,这里的目标是在我的字符串中出现的每个单词实例周围放置粗体标签。
约定 React 智慧可能表明这样的事情可以工作?
const Bold = (props) => {
return (
<b>
{props.txt}
</b>
);
};
这是我尝试合并代码的地方
if (longString.includes(searchTerm)) {
longString = longString.replace(rest, <Bold txt={rest} />);
}
问题是它作为[object Object]而不是所需的<b>searchTerm</b>
如何设置字符串交换,使其不打印单词 [object] 而是打印对象?
解决方案
你可以尝试renderToString
从react-dom
import { renderToString } from 'react-dom/server'
if (longString.includes(searchTerm)) {
longString = longString.replace(rest, renderToString(<Bold txt={rest} />) );
}
推荐阅读
- vuetify.js - 我可以使用代码拆分从旧版本的 Vuetify 迁移到新版本吗?
- xcode - 使用 XCode 实现 AppleTV 系统的 UI 自动化
- c++ - 递归向量时间复杂度之和
- python - Python 错误:“中断在循环之外”
- firebase - 在 Flutter 中具有角色库授权的 Firestore 和 google auth
- flutter - 从 API 返回的 JSON 本地化字符串无效
- sapb1 - B1 打印和交付条件操作当前用户
- python - 以下情况如何正确使用抽象类
- java - 如何正确使用 MapStruct @Mapping 和 @Mappings?
- java - 带有 JButton 的 ActionListener 问题