Dalam Reactjs, bagaimana saya boleh menambah penapis carian pada Jadual Data saya?
P粉447002127
P粉447002127 2023-08-17 15:51:24
0
1
455
<p>Saya mahu meningkatkan Jadual Data saya dengan menambahkan penapis carian dalam ReactJS. Saya mahu pengguna dapat mencari entri tertentu dalam jadual. Matlamatnya adalah untuk membolehkan pengguna mencari dan mencari data tertentu dalam jadual dengan mudah.Bagaimana untuk melaksanakan ini?</p> <pre class="brush:php;toolbar:false;"><><ScrollView showsHorizontalScrollIndicator> <Lihat gaya={styles.root}> <TouchableOpacity style={[styles.button, styles.buttonOutline]} onPress={handleBackButtonClick} > <Gaya teks={styles.buttonOutlineText}>返回</Text> </TouchableOpacity> </Lihat> <Input Teks style={styles.searchInput} pemegang tempat="按客户搜索..." /> <Gaya Jadual Data={styles.container}> <DataTable.Header style={styles.tableHeader}> <DataTable.Title>客户</DataTable.Title> <DataTable.Title>地址</DataTable.Title> <DataTable.Title>手机号码</DataTable.Title> <DataTable.Title>车牌号码</DataTable.Title> </DataTable.Header> {displayedCustomers.map((customer, index) =>{ kembali( <TouchableOpacity kunci={indeks} onPress={() => handleRowClick(pelanggan)} style={[ styles.row, dipilihBaris && selectedRow.id === customer.id && styles.selectedRow]} > <DataTable.Row key={index}> <DataTable.Cell>{customer.customer}</DataTable.Cell> <DataTable.Cell>{customer.address}</DataTable.Cell> <DataTable.Cell>{customer.mobileno}</DataTable.Cell> <DataTable.Cell>{customer.plateno}</DataTable.Cell> </DataTable.Row> </TouchableOpacity> ) })} </DataTable> <DataTable.Penomboran page={currentPage} numberOfPages={Math.ceil(customers.length / itemsPerPage)}onPageChange={handlePageChange} /> </ScrollView></pra>
P粉447002127
P粉447002127

membalas semua(1)
P粉637866931

Buat keadaan untuk menahan pertanyaan carian dan keadaan lain untuk menyimpan data yang ditapis:

const [searchQuery, setSearchQuery] = useState('');
const [filteredCustomers, setFilteredCustomers] = useState(customers); // 初始化为完整列表

Sekarang tambah fungsi ini. Kemas kini status searchQuery状态,然后根据给定的text参数进行过滤,并将结果设置为filteredCustomers dahulu.

const handleSearchInputChange = (text) => {
    setSearchQuery(text);
    const filtered = customers.filter(
      (customer) =>
        customer.customer.toLowerCase().includes(text.toLowerCase()) ||
        customer.address.toLowerCase().includes(text.toLowerCase()) ||
        customer.mobileno.includes(text) ||
        customer.plateno.includes(text)
    );
    setFilteredCustomers(filtered);
  };

Laksanakan logik ini setiap kali anda menaip dalam carian TextInput.

<TextInput
   placeholder="按客户搜索..."
   onChangeText={handleSearchInputChange}
   value={searchQuery}
/>

Akhir sekali, hanya peta melalui filtredCustomers而不是displayedCustomers:

{filteredCustomers.map((customer, index) => {
  return (
     <TouchableOpacity
        key={index}
     >
       // ....
     </TouchableOpacity>
  )  
})
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan