您如何仅根据React Mentions中的精确或部分匹配显示建议?

时间:2015-07-21 16:29:47

标签: javascript reactjs frontend

我在项目中使用React Mentions(http://effektif.github.io/react-mentions/https://github.com/effektif/react-mentions)。

我已从/src/MentionsInput.jsx

中的常规快递中删除了触发器
var _getTriggerRegex = function(trigger) {
  if (trigger instanceof RegExp) {
    return trigger;
  } else {
    var escapedTriggerChar = utils.escapeRegex(trigger);

    // first capture group is the part to be replaced on completion
    // second capture group is for extracting the search query
    return new RegExp("(?:^|\\s)(([^\\s]*))$");
  }
};

现在显示任何文本输入后的建议。

除非有完全匹配,否则我如何隐藏/不渲染建议渲染?例如,在the example中,只有字符串“John'进入了吗?当' Joh'时,它不应该显示出结果。进入了。

Only show suggestions when 'John' is entered

我是否正确地认为将值传递给/src/SuggestionsOverlay.jsx

render: function() {
    // do not show suggestions until there is some data
    if(this.countSuggestions() === 0) return null;

    return (
      <div className="suggestions" onMouseDown={this.props.onMouseDown}>
        <ul>{ this.renderSuggestions() }</ul>
      </div>
    );
  },

1 个答案:

答案 0 :(得分:0)

对于data道具,您应该提供过滤功能而不是数组。将使用查询作为第一个参数调用该函数。所以你要做的就是检查你的数据源是否完全匹配并返回。如果未返回任何内容,则不会显示建议叠加层。