mot*_*570 5 javascript firebase reactjs google-cloud-firestore
我想从我在表中列出的 firebase firestore 数据库下载一些数据。
我正在添加来自 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>
)
Run Code Online (Sandbox Code Playgroud)
我通过在 CSVLink 组件周围添加条件包装器来修复此错误,这样它就不会在加载数据之前尝试创建该组件。
因此,对于您的示例,类似这样的事情可以解决问题:
{csvData && (
<CSVLink {...csvData} >
Export
</CSVLink>
)}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3019 次 |
| 最近记录: |