javascript - 如何在 React 中为子字符串添加粗体样式
问题描述
我有一个这样的字符串列表:
[
{
text: "This is a sentence."
boldSubstrings: [
{ offset: 5, length: 2 }
]
}
]
我想呈现这样的行列表
lines.map(elem => <p>{elem.text}</p>);
我需要以某种方式将粗体样式应用于粗体子字符串中指示的单词(在本例中为“这是一个句子。”),知道怎么做吗?
解决方案
这将起作用:
const stringList = [
{
text: "This is a sentence.",
boldSubstrings: [
{ offset: 5, length: 2 },
{ offset: 8, length: 1 }
]
}
];
stringList.map(({text, boldSubstrings}) => {
let prevStart = 0;
const splittedStrings = [];
for (let subStrings of boldSubstrings) {
splittedStrings.push(text.substr(prevStart, subStrings.offset - prevStart));
splittedStrings.push(<b>{text.substr(subStrings.offset, subStrings.length)}</b>);
prevStart = subStrings.offset + subStrings.length;
}
splittedStrings.push(text.substr(prevStart));
return <p>{splittedStrings}</p>;
});
产生:
<p>This <b>is</b> <b>a</b> sentence.</p>
推荐阅读
- hadoop - 不同命令的不同 Hive 位置
- python - 如何在 Python 中调用 Web 服务函数?
- php - HTML 表单,包括 php 文件。输出只是代码
- python - ] '_283846_2019' 附近的语法不正确。(102) (SQLExecDirectW)")
- google-sheets - 如何通过 Google 表格插件获利但不使用 Stripe
- php - 将 docx (xml) 加载到 php 数组中未按预期工作。我想保留原始订单
- java - 仅使用特定文件夹中的类创建类加载器
- c++ - wav文件停止功能
- android - 检测到不一致。无效的视图支架适配器 positionViewHolder
- c++ - 返回随机值而不是期望值!C++