首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RecoilJs正在冻结UI

RecoilJs正在冻结UI
EN

Stack Overflow用户
提问于 2020-10-14 07:53:54
回答 1查看 495关注 0票数 1

我在我的项目中使用后坐力Js,我只有一个原子

代码语言:javascript
复制
export const currentUserState = atom<User | null>({
  key: "currentUserState",
  default: null,
});

我正在用它

代码语言:javascript
复制
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;

这个组件被放置在

代码语言:javascript
复制
ReactDOM.render(
  <RecoilRoot>
    <BrowserRouter>
        <Startup>
          <App />
        </Startup>
    </BrowserRouter>
  </RecoilRoot>,
  document.getElementById("root")
);

我试图在应用程序加载之前获取当前用户信息,这样我就可以跟踪用户是否登录。但是这个应用程序在加载时被卡住了,我在控制台上看到了这个错误。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-20 02:47:20

我试图存储firebase用户对象,它包含与当前用户相关的所有信息。在保存用户对象的同时,屏幕冻结反冲可能有两个原因。

  1. 用户对象不是JSON对象。
  2. 用户对象可能太大。

当我试图保存像id和电子邮件这样的对象的特定信息时,我的问题就解决了。当我只保存了一些具体的信息时,已经没有冰点了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64348903

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档