我正在為我的React Web應用程式開發一個過濾器組件,并希望為Firestore查詢回傳(通過props)一個條件陣列。
例如,如果用戶想過濾掉沒有評論的帖子,他們會勾選一個復選框,然后將where("commentsCount", ">", "0")添加到過濾器陣列中。
const queryParams = [
collection(db, "post")。
orderBy(sortType, sortMethod)。
limit(POSTS_PER_PAGE) 。
];
const filters = [
where("commentsCount", ">", "0") 。
//還有可能更多的地方。
];
queryParams.push(... filters)。
//使用引數創建一個Firestore查詢物件。
const _query = query(...queryParams)。
但是這樣做給了我一個TypeScript錯誤。一個傳播引數必須有一個元組型別或被傳遞給一個其余引數。 TS2556。
我做錯了什么?
我做錯了什么?
uj5u.com熱心網友回復:
你不能在query中傳遞一個(CollectionReference<DocumentData>|QueryConstraint)[]型別的引數。試著在query中直接添加collection(),并從queryParams中洗掉它,這樣它將成為一個QueryContraint[]型別的陣列:
const queryParams = [
orderBy(sortType, sortMethod)。
limit(POSTS_PER_PAGE) 。
];
const filters = [
where("commentsCount", ">", "0") 。
//還有可能更多的地方。
];
///使用這些引數創建一個Firestore查詢物件。
const _query = query(collection(db, "post"), ...queryParams) 。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/308774.html
標籤:
