مكون 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
المصفوفة عبارة عن مصفوفة، فسترجع الدالة صحيحًا إذا كان أحد مفاتيح العنصر على الأقل يطابق مصطلح البحث.
قم بإرجاع دالة يمكن استخدامها لتصفية مصفوفة. يمكن أن يكون searchTerm
عبارة عن regex
أو String
. يمكن أن تكون keys
String
أو [String]
أو null
.
إذا كانت keys
المصفوفة عبارة عن مصفوفة، فسترجع الدالة صحيحًا إذا كان أحد مفاتيح العنصر على الأقل يطابق مصطلح البحث.
انظر إلى رد فعل البحث-input.css للحصول على فكرة حول كيفية تصميم هذا المكون.
مرخص من معهد ماساتشوستس للتكنولوجيا