我正在使用 https://github.com/fmoo/react-typeahead 来对某些文本进行自动完成。我想改变它的行为,以便它立即显示结果(遵守它的 maxVisible 属性)。我很确定我所要做的就是向 getOptionsForValue 方法添加几行代码,但我不知道如何扩展组件来做到这一点。
我听说使用 ES6 风格的 Javascript 可能会有一些希望,所以我尝试了这个:
class CustomTypeahead extends TypeAhead {
getOptionsForValue(value, options) {
var result = [];
if (value === '') {
result = options;
} else {
result = fuzzy.filter(value, options).map(function(res) {
return res.string;
});
}
if (this.props.maxVisible) {
result = result.slice(0, this.props.maxVisible);
}
return result;
}
}
但是当在 TypeAhead 内部调用该方法(使用 React.createClass 定义)时,我的自定义方法不会被调用。
您需要导出 CustomTypeahead 类。