Estoy creando una página para las publicaciones que pueden ser vistas por las más recientes o por las que tienen más Me gusta.
Manejo esto con listas desplegables y matrices.
Y cada vez que se hace clic en la lista desplegable, tengo que forzar la actualización para que coincida con su valor.
async selectPosts ({...} = {}, forceUpdate = false) { let goodOrderByDir = 'desc' let dateOrderByDir = 'desc' const db = getFirestore() let constraints = [ //This array determines the viewing order. orderBy('date', dateOrderByDir), orderBy('good', goodOrderByDir)] var hw = document.getElementById('dropDowmListID') //It is linked to a drop-down list. hw.addEventListener('change', function() { if (hw.value == 1) { //newest constraints = [ orderBy('date', dateOrderByDir), orderBy('good', goodOrderByDir)] } if (hw.value == 2) { //most likes constraints = [ orderBy('good', goodOrderByDir), orderBy('date', dateOrderByDir)] } }) if (forceUpdate) { this._lastSelectPostsOptions = {} } constraints.push(limit(pageSize)) const queryRef = query(collection(db, 'posts'), ...constraints) return Promise.all((await getDocs(queryRef)).docs.map(async item => { this._lastSelectPostsDoc = item const data = item.data() return { ...data } })) }Al realizar una actualización forzada, el valor predeterminado es falso en el código actual.
async selectPosts ({...} = {}, forceUpdate = false)Entonces, cuando cambio la lista desplegable, me dijeron que debe ser cierto para obtener el siguiente valor.
Así que cambié el código así
async selectPosts ({...} = {}, forceUpdate = true)Pero no pude obtener el valor que quería...
¿Cómo puedo forzar una actualización para aplicar los valores de matriz modificados?