Rumah  >  Soal Jawab  >  teks badan

Dalam Reactjs, bagaimana saya boleh menambah penapis carian pada Jadual Data saya?

<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粉447002127P粉447002127401 hari yang lalu412

membalas semua(1)saya akan balas

  • P粉637866931

    P粉6378669312023-08-18 14:28:26

    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>
      )  
    })
    

    balas
    0
  • Batalbalas