在下面的代码中是否可以有条件地渲染Where语句(基于现有的变量)?useEffect(() => { const getProducts = projectFirestore.collection(collection) .where("color", "==", `${urlColor}`) .where("size", "==", `${urlSize}`) .onSnapshot((snap) => { ... }) return () => getProducts(); },[collection]) return { docs };}我从 URL 参数中提取“urlColor”和“urlSize”,但它们仅在用户选择该选项时才存在。我想要这样的功能if (urlColor && .where("size", "==", `${urlSize}`))非常感谢任何帮助,马特
1 回答
收到一只叮咚
TA贡献1821条经验 获得超4个赞
是的,您只需要在此过程中保存一个临时变量。
useEffect(() => {
let query = projectFirestore.collection(collection)
if (urlColor) {
query = query.where("color", "==", `${urlColor}`);
}
if (urlSize) {
query = query.where("size", "==", `${urlSize}`)
}
const unsubscribe = query.onSnapshot((snap => {
...
});
return () => unsubscribe();
});
添加回答
举报
0/150
提交
取消