前提・実現したいこと
React、Typescriptで
FireBaseのデータをレンダリングしようとしているのですが、
map処理のところでエラーが出てしまいました。
初歩的な質問で恐縮ですが、
アドバイスいただけると幸いです。
発生している問題・エラーメッセージ
TypeError: Cannot read property 'map' of undefined
該当のソースコード
Typescript
1import React, { useState, useEffect } from 'react'; 2import './App.css'; 3import { db } from './firebase'; 4 5const App: React.FC = () => { 6 const [ posts, setPosts ] = useState([{ id: "", artist: "", name: "", url: ""}]) 7 useEffect(() => { 8 const unSub = db.collection("posts").doc("content").collection("song").doc("song1").onSnapshot((snapshot: any) =>{ 9 setPosts( 10 snapshot.docs.map((doc: any)=> ({id: doc.id, artist: doc.data().artist, name: doc.data().name, url: doc.data().url})) 11 ); 12 }); 13 return () => unSub(); 14 }, [])
試したこと
以下のコードでは無事にレンダリングできたので、
このコードをベースにいじってみました。
const App: React.FC = () => { const [ posts, setPosts ] = useState([{ id: "", content: ""}]) useEffect(() => { const unSub = db.collection("posts").onSnapshot((snapshot) =>{ setPosts( snapshot.docs.map((doc)=> ({id: doc.id, content: doc.data().content})) ); }); return () => unSub(); }, [])
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー