Tem como usar vários dropdowns para filtrar uma coleção que criei?
top of page
EN
PT
A lista de desejos é a nova plataforma oficial para solicitação de novos recursos. Você pode votar, comentar e acompanhar o status dos recursos solicitados - Disponível apenas em inglês.
bottom of page
Olá Gabriel,
É possível sim! Usado array reduce é possivel criar o filtro de forma dinamica de acordo com sua demanda. Veja um pequeno exemplo de como fazer (esse exemplo serve para qualquer filtro não apenas o contains):
import wixData from 'wix-data'; function generateFilter(filters) { return filters.reduce( (filter, item) => { return filter[item.type](item.field, item.content) }, wixData.filter()); } function filterDataSet () { let filters = [] let searchType = $w('#typeDropdown').value; let searchYear = $w('#yearDropdown').value; if(searchType !== "All") { filters.push({field: 'type', type: 'contains', content: searchType}) } if(searchYear !== "All") { filters.push({field: 'publicationDate', type: 'contains', content: searchYear}) } const filter = generateFilter(filters) $w("#dataset1").setFilter( filter ); }
Talvez esse link te ajuda mais:
https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce
Espero que dê certo ;)