如何根据用户输入将搜索建议部分加粗?

莫希特·乔汉

我一直在尝试在 React 中开发搜索建议。搜索建议将在用户键入时显示。

您可以在链接上找到代码 - https://codesandbox.io/s/heuristic-shaw-rqp2k?file=/src/Autocomplete.js

我想要实现的是,出现的建议必须有用户输入的粗体部分。

示例 - 当用户在输入字段中输入pa ”时,我们得到两个建议——Papaya 和 Paw Paw

因此,建议应显示为Pa paya 和Pa w Paw。

我一直在尝试使用替换方法通过执行以下操作来实现这一点 -

let optionName = optionName.replace(userInput,'<b>'+userInput+'</b>')

这段代码不起作用,这是代码和框链接上的第 66 行。

任何其他不使用替换方法的解决方案也是受欢迎的。

如果您需要更多信息,请告诉我。

高瑟姆·文卡特什

下面的代码解决了。请检查。

<li className={className} key={optionName} onClick={onClick}>
                {_getStyledSuggestion(optionName)}
</li>
const _getStyledSuggestion = (suggestion) => {
    if(!suggestion.toLowerCase().startsWith(userInput)) {
      return <span>{suggestion}</span>;
    }
    const userInputLength = userInput.length;
    return(
      <span>
        <span className="bold-span">{suggestion.substring(0, userInputLength)}</span>
        {suggestion.substring(userInputLength)}
      </span>
    );
  }

CSS:

.bold-span {
  font-weight: 700;
}

链接:https : //codesandbox.io/s/angry-sea-97k4w?file=/src/ Autocomplete.js: 1495-1898

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章