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