RecoilJs 正在冻结 UI
RecoilJs is freezing the UI
我正在为我的项目使用反冲 Js,我有一个原子
export const currentUserState = atom<User | null>({
key: "currentUserState",
default: null,
});
我在
中使用它
const Startup: React.FC = ({ children }) => {
const [loading, setLoading] = useState(false);
const setCurrentUser = useSetRecoilState(currentUserState);
useEffect(() => {
setLoading(true);
app.auth().onAuthStateChanged((user) => {
setCurrentUser(user);
setLoading(false);
});
}, [setCurrentUser]);
if (loading) return <div>loading</div>;
return <>{children}</>;
};
export default Startup;
并且这个组件被放置在
ReactDOM.render(
<RecoilRoot>
<BrowserRouter>
<Startup>
<App />
</Startup>
</BrowserRouter>
</RecoilRoot>,
document.getElementById("root")
);
我试图在应用加载之前获取当前用户信息,以便无论用户是否登录,我都可以跟踪用户。但是应用程序在加载时卡住了,我在控制台上收到了这个错误。
我试图存储包含与当前用户相关的所有信息的 firebase 身份验证用户对象。保存用户对象时后坐力画面卡住可能有两种原因。
- 用户对象不是 JSON 对象。
- 用户对象可能太大。
当我尝试仅保存对象的特定信息(如 ID 和电子邮件)时,我的问题得到了解决。当我只保存特定信息时,就不再卡顿了。
我正在为我的项目使用反冲 Js,我有一个原子
export const currentUserState = atom<User | null>({
key: "currentUserState",
default: null,
});
我在
中使用它const Startup: React.FC = ({ children }) => {
const [loading, setLoading] = useState(false);
const setCurrentUser = useSetRecoilState(currentUserState);
useEffect(() => {
setLoading(true);
app.auth().onAuthStateChanged((user) => {
setCurrentUser(user);
setLoading(false);
});
}, [setCurrentUser]);
if (loading) return <div>loading</div>;
return <>{children}</>;
};
export default Startup;
并且这个组件被放置在
ReactDOM.render(
<RecoilRoot>
<BrowserRouter>
<Startup>
<App />
</Startup>
</BrowserRouter>
</RecoilRoot>,
document.getElementById("root")
);
我试图在应用加载之前获取当前用户信息,以便无论用户是否登录,我都可以跟踪用户。但是应用程序在加载时卡住了,我在控制台上收到了这个错误。
我试图存储包含与当前用户相关的所有信息的 firebase 身份验证用户对象。保存用户对象时后坐力画面卡住可能有两种原因。
- 用户对象不是 JSON 对象。
- 用户对象可能太大。
当我尝试仅保存对象的特定信息(如 ID 和电子邮件)时,我的问题得到了解决。当我只保存特定信息时,就不再卡顿了。