reactjs - 用跨度替换文本
问题描述
我正在使用 React,并尝试在包含此值的字符串中突出显示用户键入的值。
为了突出显示这个值,我试图this.props.value
用包含这个值 + html 的子字符串替换对应的子字符串。
例如,对于item.name
:John 如果用户键入“Jo”。我想显示Jo hn 子字符串“Jo”被突出显示。
这是我的代码:
{this.props.value.length > 0 &&
item.name.search(this.props.value)
? item.name.replace(this.props.value, `<span className="myClass">${this.props.value}</span>`)
: item.name
}
返回的值为纯文本,span 不作为 html。我怎样才能解释这个 html 标签?
解决方案
在这里,我不关注您的代码。
我只是告诉你如何通过反应逻辑突出显示你的文本。如果您的 item.name 有价值,那么如何突出显示文本,如果没有,那么该怎么做。
<div>
{item.name && <span className="myClass">${this.props.value}</span>}
{!item.name && this.props.value}
</div>
推荐阅读
- python - 如何在 Python 中检查 type() 方法的返回值?
- sql-server - 将 SQL Server .bak 文件导出到共享点链接
- android - 如何检查自定义视图是否有禁用的父级?
- git - 找不到我提交了一些更改的独立头分支
- java - 带箭头键的基本动画
- python - 我不太确定如何使用 Twine 将我的项目上传到 testpypi
- react-native - 解析 JSON 的困难 3 个级别
- azure-functions - 如何查看实际的 Azure 事件网格消息?
- c# - 如何全局处理 httpclient 响应代码?
- swift - 菜单栏应用程序可以在弹出窗口或菜单之间切换吗?