簡體   English   中英

如何在反應中從自定義 function 返回 boolean 值

[英]How to return boolean value from custom function in react

我有一個應用程序接受一個名為 object 的用戶。 用戶 object 擁有從 firestore 數據庫獲取信息所需的 userId 信息,無論此人是否是付費會員,會員資格是真還是假。 如果此人是非付費會員,我希望顯示一個按鈕,如果他是付費會員,我希望不顯示該按鈕。 我遇到的問題是如何從 PaidMembership() function 返回 boolean?


    const App = ({ user, database }) => {
    
       const PaidMembership = () => {
          var test = null;
          docRef.get().then(function(doc) {
            if (doc.exists) {
              test = doc.data().membership;
              //console.log(paidMembership);
            } else {
              console.log("Error: no such document exists")
              test = false;
            }
          })
    
          return test;
       }
    
       return (
           { PaidMembership() ? render : dont render}
       )
    }

在 state 中創建測試變量並檢查

const [test, setTest] = useState(null);


    const App = ({ user, database }) => {
    
       const PaidMembership = () => {
       
          docRef.get().then(function(doc) {
            if (doc.exists) {
             setTest( doc.data().membership);
              //console.log(paidMembership);
            } else {
              console.log("Error: no such document exists")
              setTest(null);
            }
          })
    
          return test;
       }
    
       return (
           { test ? "" : <button>show button</button>}
       )
    }

這是因為 docRef.get 返回 promise 並且您將其視為正常的 function 調用。 嘗試使用這個:

const App = async ({ user, database }) => {
  const PaidMembership = async () => {
    const doc = await docRef.get();
    return doc.exists;
  };

  return (await PaidMembership()) ? "render" : "dont render";
};

暫無
暫無

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

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