簡體   English   中英

嘗試將數據導出到 reactJS 中的 CSV 時,獲取錯誤數據應該是“字符串”、“數組數組”或“對象數組”

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM