【やりたいこと】
firestoreから取得したデータの一覧をuseStateを使用してstateに格納したい。
【行なっている事】
TypeScrit
1type account = { 2 firstName: string, 3 lastName: string, 4}[]; 5 6function list(): ReactElement { 7 const [account, setAccount] = useState<account>(); 8 const getAccountData = async() => { 9 const accountListTable = db.collection('accountList'); 10 await accountListTable.get() 11 .then((snapshot)=> { 12 snapshot.forEach((doc) => { 13 setAccount({...account, doc.data()}); 14 }); 15 }) 16 .catch((e)=> { 17 console.log(e); 18 }); 19 }; 20 getAccountData(); 21 22 return( 23 <div> 24 ... 25 </div> 26 ); 27}
【処理の流れ】
1.accountというstateがあります。
2.firestoreにてaccountListコレクションからアカウントの一覧を取得します。
doc.data()の中身は下記のようになっています。
TypeScript
1{ 2 firstName: '太郎', 3 lastName: '山田', 4}
3.doc.data()の値をaccountに格納したいです。
accountの中身は下記を想定しています。
TypeScript
1account = [ 2 { 3 firstName: '太郎', 4 lastName: '山田', 5 }, 6 { 7 firstName: '花子', 8 lastName: '佐藤', 9 }, 10 { 11 firstName: '一郎', 12 lastName: '鈴木', 13 }... 14];
【困っている事】
TypeScript
1setAccount({...account, doc.data()}); 2 3//エラー内容 4型 '{ doc: firebase.firestore.QueryDocumentSnapshot<firebase.firestore.DocumentData>; "": any; length?: number | undefined; toString?: (() => string) | undefined; toLocaleString?: (() => string) | undefined; ... 30 more ...; [Symbol.unscopables]?: (() => { ...; }) | undefined; }' の引数を型 'SetStateAction<account | undefined>' のパラメーターに割り当てることはできません。 5 オブジェクト リテラルは既知のプロパティのみ指定できます。'doc' は型 'account | ((prevState: account | undefined) => account | undefined)' に存在しません。ts(2345)
ここの箇所でエラーが発生してしまっています。
初心者なため随時調べて行っているのですが配列の中身がオブジェクトの値をstateに格納するやり方が
調べても中々見つからず、また型の宣言も合っているか心配です...。
もし分かる方がいらっしゃればご教授頂きたいです。
よろしくお願い致します。

回答2件
あなたの回答
tips
プレビュー