У меня есть вход (поиск) и список множественного выбора.Список выбора должен быть «быстрым для поиска».Ввод из поля поиска, скорее всего, будет разделен пробелом.Пример: "вещь, которую я ищу". Я хочу, чтобы единственные выбираемые опции содержали ВСЕ ключевые слова.Я попробовал 100 перестановок фильтра и карты, и, кажется, не могу этого добиться.Заранее благодарим за любую помощь.
Ниже приводится общая суть того, с чем я работаю.
this.state = {
search:["some terms"],
list:["terms A some","some B terms", "C some term"]
}
renderOptions = (list, search) => {
let options
search.forEach(term =>{
options = term.length > 0 ? list.filter(list => list.toLowerCase().includes(term.toLowerCase())) : options
})
return options && options.map((option,i)=>
<option key={i} value={option}>{option}</option>
)
}
handleChange = (e) => {
this.setState({[e.target.name]:e.target.value.toLowerCase().split(' ')})
}
render(){
...
<Form.Control name="search" type="text" placeholder="search terms" onChange={this.handleChange.bind(this)}/>
<Form.Control as="select" multiple>
{ this.state.list && this.renderOptions(this.state.list,this.state.search) }
</Form.Control>
}
Список выбора должен найти this.state.list [0]и [1] истина и [2] ложь
<select>
<option> terms A some </option>
<option> some B terms </option>
</select>