export function Login() {
window.addEventListener('load', function () {
window.FB.getLoginStatus(function (response) {
if (!response.authResponse) {
console.log(response);
return (
<div id='flex flex-row justify-center pb-100 fb-root'>
<button className='btn btn-round btn-lg'>Login</button>
</div>
);
} else {
console.log('UserLoggedIn');
return (
<div id='flex flex-row justify-center pb-100 fb-root'>
<button className='btn btn-round btn-lg'>Logout</button>
</div>
);
}
});
});
}
我在回傳我的按鈕時遇到問題,該按鈕根據回應而登錄或注銷。我正在使用視窗加載功能來確保我的其他腳本首先運行。
錯誤資訊:
"react-dom.development.js:14169 Uncaught Error: Login(...): Nothing was returned from render. This usually means a return statement is missing. Or, to render nothing, return null."
uj5u.com熱心網友回復:
我假設這個函式應該是一個 React 組件。React 組件需要回傳一些東西。您的組件沒有回傳任何內容。根據上面的代碼,您似乎只想在擁有登錄狀態后呈現按鈕。所以首先從 window.addEventListener 回呼函式之外的這個函式回傳 null。這將使錯誤消失,但不會完成您要執行的操作。接下來,使用默認為 true的useState鉤子向組件添加 isLoading 狀態。然后,將您的 widow.addEventListener 呼叫包裝在useEffect 中呼叫而不是回傳按鈕,而是將 isLoading 狀態更改為 false。您可能需要第二個狀態物件來保存 getLoginStatus 的結果。然后您的組件可以根據組件的狀態有條件地回傳按鈕或 null。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/400267.html
標籤:javascript 反应 接口
