ส่วนประกอบ 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
อาร์เรย์เป็นอาร์เรย์ ฟังก์ชันจะส่งกลับค่าจริงหากมีอย่างน้อยหนึ่งคีย์ของรายการตรงกับคำค้นหา
ดูที่ react-search-input.css เพื่อดูแนวคิดเกี่ยวกับวิธีจัดสไตล์ส่วนประกอบนี้
เอ็มไอทีได้รับใบอนุญาต