【发布时间】:2021-11-09 20:10:09
【问题描述】:
我正在为我的 React Web 应用程序开发一个过滤器组件,并希望返回(通过 props)一组用于 Firestore 查询的条件。
例如,如果用户想要过滤掉没有 cmets 的帖子,他们会选中一个复选框并将 where("commentsCount", ">", "0") 添加到过滤器数组中。
const queryParams = [
collection(db, "posts"),
orderBy(sortType, sortMethod),
limit(POSTS_PER_PAGE),
];
const filters = [
where("commentsCount", ">", "0"),
// And possibly more where's
];
queryParams.push(...filters);
// Create a firestore query object using the parameters
const _query = query(...queryParams);
但是这样做会给我一个 TypeScript 错误:A spread argument must either have a tuple type or be passed to a rest parameter. TS2556。
我做错了什么?
【问题讨论】:
-
看看stackoverflow.com/questions/4156101/…,您想要一个连接
queryParams和filters的新数组,而不是仅仅推送它。 -
@iunfixit 连接 queryParams 和过滤器不是问题。我的问题是当我尝试在查询构造函数中使用扩展运算符时出现 TypeScript 错误。
标签: javascript reactjs typescript firebase google-cloud-firestore