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 } })) }Aquí está el código desde donde lo llamo:
searchPosts (isInfinite = false, country = '대한민국', city = '서울특별시', state = '중구', street = '정동', forceUpdate = true) { this.firestoreDao.selectPosts({ lat: 37.566227, lot: 126.977966, distance: 1, sortBy: 'best', pageSize: 8, includeMine: false, country, city, state, street, uid: Vue.prototype.$firebaseAuth ? Vue.prototype.$firebaseAuth.getCurrentUserUid() : '' }, forceUpdate) }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?