我正在尝试构建一个需要目录的应用程序。每次我更新组件时,它都会将数据再次推入数组,创建多个副本。我尝试通过添加!arry.includes来解决这个问题,但这并不能阻止它添加另一个数据示例。
const Directory = () => {
const [searchResults, setSearchResults] = useState([]);
const [loading, setLoading] = useState(false);
const { currentUser } = useContext(AuthContext);
useEffect(() => {
setLoading(true);
const data = async () => {
const q = query(collection(db, "users"), where("type", "==", "doctor"));
const querySnapshot = await getDocs(q);
querySnapshot.forEach((doc) => {
const data = doc.data();
if (!searchResults.includes(data)) {
searchResults.push(data);
}
});
setLoading(false);
};
data();
},[]);
console.log(searchResults);
1条答案
按热度按时间42fyovps1#
看起来您试图在这里比较对象,但它不适用于array.includes()方法。
在javascript中
您需要搜索更具体的内容或尝试Comparing Objects。无论哪种方式,您尝试做的事情都很棘手,您可能需要探索lodash或其他方法来解决它