Простой компонент React для ввода поиска, предоставляющий функцию фильтра.
npm install react-search-input --save
import React , { Component } from 'react'
import SearchInput , { createFilter } from 'react-search-input'
import emails from './mails'
const KEYS_TO_FILTERS = [ 'user.name' , 'subject' , 'dest.name' ]
class App extends Component {
constructor ( props ) {
super ( props )
this . state = {
searchTerm : ''
}
this . searchUpdated = this . searchUpdated . bind ( this )
}
render ( ) {
const filteredEmails = emails . filter ( createFilter ( this . state . searchTerm , KEYS_TO_FILTERS ) )
return (
< div >
< SearchInput className = "search-input" onChange = { this . searchUpdated } / >
{ filteredEmails . map ( email => {
return (
< div className = "mail" key = { email . id } >
< div className = "from" > { email . user . name } < / div >
< div className = "subject" > { email . subject } < / div >
< / div >
)
} ) }
< / div >
)
}
searchUpdated ( term ) {
this . setState ( { searchTerm : term } )
}
}
Весь реквизит не является обязательным. Все остальные реквизиты будут переданы на вход DOM.
Класс компонента (помимо search-input
).
Функция, вызываемая при изменении условия поиска (будет передана в качестве аргумента).
Либо [String]
либо String
. Будет использоваться методом filter
, если ему не передан аргумент.
Уменьшите частоту обращения к функции onChange
(в мс). По умолчанию — 200
.
Определите, должен ли поиск быть чувствительным к регистру. По умолчанию — false
Определите, должен ли поиск быть нечетким. По умолчанию — false
Определите, должны ли результаты поиска сортироваться по релевантности (работает только при нечетком поиске). По умолчанию — false
Определите значение входа.
Возвращает функцию, которую можно использовать для фильтрации массива. keys
могут быть String
, [String]
или null
.
Если keys
массива являются массивом, функция вернет true, если хотя бы один из ключей элемента соответствует искомому критерию.
Возвращает функцию, которую можно использовать для фильтрации массива. searchTerm
может быть regex
или String
. keys
могут быть String
, [String]
или null
.
Если keys
массива являются массивом, функция вернет true, если хотя бы один из ключей элемента соответствует искомому критерию.
Посмотрите на response-search-input.css, чтобы узнать, как стилизовать этот компонент.
Лицензия MIT