Dapatkan data yang ditapis dalam Bootstrap DataTable menggunakan React.js dengan memasukkan kata kunci carian
P粉432906880
P粉432906880 2024-02-03 23:29:58
0
1
359

Saya menggunakan jadual data bootstrap dalam apl React saya

function MyApp(){

const tableRef = useRef(null);
const [tableSave, setTableSave] = useState(null)
const [dataFromAPI, setDataFromAPI] = useState([])

useEffect(()=> {
      axios.get("url").then(response=>setDataFromAPI(response.data))
},[])
 
useEffect(() => {
    
   setTableSave($(tableRef.current).DataTable(
      {
        bSort: false,
        scrollY: "200px",
        scrollCollapse: true,
        info: true,
        paging: false
      }
    ));
   
  }, [dataFromAPI]);
return (
<>
 <table className="table" ref={tableRef}>
            <thead>
              <tr>
                <th>A</th>
                <th>B</th>
                <th>C</th>
              </tr>
            </thead>
            <tbody>
              {tableData.map((_value, i) => {
                return (
                  <tr key={i}>
                    <td key={i}>{_value['A']}</td>
                    <td key={i}>{_value['B']}</td>
                    <td key={i}>{_value['C']}</td>
                  </tr>
                );
              })}
            </tbody>
          </table>
</>
)
}

Kini data dipaparkan dengan betul dan carian berfungsi dengan sempurna, tetapi saya mahu tatasusunan apabila pengguna memasuki carian dan menapis rekod jadual. Saya tidak tahu kaedah mana yang hendak dipanggil dalam Bootstrap Datatable semasa bekerja pada apl bertindak balas. Sebagai contoh, apabila pengguna memasukkan "A" dalam kotak carian, kaedah tersebut harus dipanggil dan mengembalikan tatasusunan yang mengandungi objek dengan nilai "A" dalam mana-mana lajur. Bagaimanakah saya boleh mencapai ini dengan mengekalkan fungsi boleh data?

P粉432906880
P粉432906880

membalas semua(1)
P粉691958181

Baru dapat jawapan

if(tableSave){
  tableSave.on("search.dt", function() {
      //filtered rows data as an arrays

      let data = tableSave.rows({ filter: "applied" }).data();

}

}

Fungsi ini akan dipanggil setiap kali input diklik dalam bar carian, dan data yang ditapis akan dikembalikan

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan