【发布时间】:2021-01-28 14:23:33
【问题描述】:
我正在为我的项目使用反冲 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")
);
我试图在应用加载之前获取当前用户信息,以便我可以跟踪用户是否登录。但是应用程序在加载时卡住了,我在控制台上收到了这个错误。
【问题讨论】:
-
hmm 你认为
setCurrentUser需要作为useEffect中的依赖项,因为它声明setter 并且它的签名永远不会改变,所以可以尝试删除它并检查 -
对不起,我忘了删除它,但我所说的问题与它无关
-
用户对象结构是什么?
-
firebase 用户对象
-
如果codesandbox中的示例代码很好。
标签: reactjs react-state-management recoiljs