javascript - 如何根据用户输入将搜索建议部分加粗?
问题描述
我一直在尝试在 React 中开发搜索建议。搜索建议将在用户键入时显示。
您可以在链接上找到代码 - https://codesandbox.io/s/heuristic-shaw-rqp2k?file=/src/Autocomplete.js
我想要实现的是出现的建议必须包含用户键入的粗体部分。
示例 - 当用户在输入字段中输入“ pa ”时,我们得到两个建议——Papaya 和 Paw Paw
因此,建议应显示为Pa paya 和Pa w Paw。
我一直在尝试使用 replace 方法通过执行以下操作来实现这一点 -
let optionName = optionName.replace(userInput,'<b>'+userInput+'</b>')
这段代码不起作用,这是代码和框链接上的第 66 行。
也欢迎任何其他不使用替换方法的解决方案。
如果您需要更多信息,请告诉我。
解决方案
您可以使用危险的SetInnerHTML。
dangerouslySetInnerHTML 是 React 在浏览器 DOM 中使用 innerHTML 的替代品
代替:
<li className={className} key={optionName} onClick={onClick}>
{optionString}
</li>
您可以使用:
<li className={className} key={optionName} onClick={onClick}>
<span dangerouslySetInnerHTML={{__html: optionString}} />
</li>
推荐阅读
- javascript - 反应 onChange 不起作用。有人能帮我吗?
- html - 在 Azure 中发布时不显示选择控件
- javascript - 如何使用RegExp从(键,值)对的字符串中提取值?
- swift - 添加使用其他 SPM 作为其内部依赖项的 SPM 时出现错误提示“未找到模块”
- spring - 无法启动 Spring Boot 项目
- objective-c - 呈现 UIDocumentPickerViewController 并关闭它会使呈现的视图控制器保持冻结状态
- c# - ASP.NET Core Web API 端点与数据库的连接,最佳实践?
- javascript - Google javascript 客户端 api:如何获取个人资料名称?
- ruby-on-rails - Spree - 产品图像变体中的问题
- iis - 无法在 IIS 中托管的所有网站上访问此站点 ERR_CONNECTION_ABORTED