Maison > Questions et réponses > le corps du texte
P粉6378669312023-08-18 14:28:26
Créez un état pour contenir la requête de recherche et un autre état pour stocker les données filtrées :
const [searchQuery, setSearchQuery] = useState(''); const [filteredCustomers, setFilteredCustomers] = useState(customers); // 初始化为完整列表
Ajoutez maintenant cette fonction. Mettez d’abord à jour le statut searchQuery
状态,然后根据给定的text
参数进行过滤,并将结果设置为filteredCustomers
.
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); };
Exécutez cette logique à chaque fois que vous tapez une recherche TextInput
.
<TextInput placeholder="按客户搜索..." onChangeText={handleSearchInputChange} value={searchQuery} />
Enfin, il suffit de cartographier via filtredCustomers
而不是displayedCustomers
:
{filteredCustomers.map((customer, index) => { return ( <TouchableOpacity key={index} > // .... </TouchableOpacity> ) })