簡體   English   中英

IONIC / REACT 第 9:5 行:期望一個賦值或函數調用,而是看到一個表達式 @typescript-eslint/no-unused-expressions

[英]IONIC / REACT Line 9:5: Expected an assignment or function call and instead saw an expression @typescript-eslint/no-unused-expressions

當我嘗試制作掛鈎以從 firebase 獲取用戶數據時。 像這樣

import { useEffect, useState } from 'react';
import { firestore } from '../../'
import { getAuth } from 'firebase/auth';
export function useUserDetails() {
  const db = firestore;
  const userid = getAuth().currentUser?.uid
  const [userDetails, setuserDetails] = useState<unknown>([])
  useEffect(() => {
    (async () => {
     const doc = await db.collection("Users").doc(userid).get();
      setuserDetails(({...doc.data(), id: doc.id}))
  })}, [])
  return [userDetails]
}

反應給我一個錯誤:第 9:5 行:期望一個賦值或函數調用,而是看到一個表達式 @typescript-eslint/no-unused-expressions。

您需要在 useEffect 中調用匿名函數。 看起來您的 setuserDetails 調用中有一組額外的括號。 另外, doc.data()doc.id都正確嗎?

useEffect(() => {
  (async () => {
    const doc = await db.collection("Users").doc(userid).get();
    // removed parens
    setuserDetails({...doc.data(), id: doc.id}));
  // added parens
  })();
}, []);

修正:這是使用效果的正確方法

useEffect(() => {
    (async function() {
      const doc = await db.collection("Users").doc(userid).get();
      setuserDetails(({...doc.data(), id: doc.id}))
    })();
}, []);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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