[英]Firestore query returns empty array when there is data that should be returned
[英]Getting Error Data should be a "String", "Array of arrays" OR "Array of objects" when trying to export data to CSV in reactJS
我想從表中列出的 firebase firestore DB 下載一些數據。
我正在添加來自我的 firestore 的數據,以便導出到 CSV 並在我的管理儀表板中有一個完整的可查看文件
但每次我嘗試按照步驟下載數據並將它們導出為 CSV 格式時,我都會收到此錯誤: "Data should be a "String", "Array of arrays" OR "Array of objects"
這是我的代碼:
import { CSVLink } from 'react-csv';
const [data, setData] = useState([]);
const [csvData, setcsvData] = useState([]);
const list = []
const csvList = []
useEffect(() => {
firebase.firestore().collection("Users").get().then((userSnapshot) => {
userSnapshot.forEach((doc) => {
const {powerAccount,first_name,registerDate,email,company,country,phone} = doc.data();
setID(doc.data().usersID)
list.push({
usersID:doc.id,
powerAccount:powerAccount,
first_name:first_name,
registerDate:registerDate,
email:email,
company:company,
country:country,
phone:phone,
});
const userData = {
usersID: doc.id,
powerAccount: powerAccount,
first_name: first_name,
registerDate: registerDate,
email: email,
company: company,
country: country,
phone: phone,
};
const headers = [
{ label: 'Account', key: powerAccount },
{ label: 'Name', key: first_name },
{ label: 'RegistrationDate', key: registerDate },
{ label: 'Email', key: email },
{ label: 'Company', key: company },
{ label: 'Country', key: country },
{ label: 'Phone', key: phone },
];
const csvReport = {
filename: "userReport.csv",
headers: headers,
data: userData
}
csvList.push(csvReport)
});
setData(list);
setcsvData(csvList)
});
},[]);
return (
<CSVLink {...csvData} >
Export
</CSVLink>
)
我通過在我的 CSVLink 組件周圍添加一個條件包裝器來修復此錯誤,這樣它就不會在加載數據之前嘗試創建該組件。
因此,對於您的示例,這樣的事情可以解決問題:
{csvData && (
<CSVLink {...csvData} >
Export
</CSVLink>
)}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.